Nikola Zigic put the home side in front after 37 minutes and Marko Pantelic, Zdravko Kuzmanovic and a double from Milan Jovanovic - all in the second half - completed the rout.
Serbia started brightly and Dejan Stankovic flashed a shot narrowly wide of the post after just two minutes.
Romania's first chance came after eight minutes but former Chelsea striker Adrian Mutu headed over from Dacian Varga's cross.
Mutu then seemed to catch Manchester United defender Nemanja Vidic in the face with his arm, but escaped a booking.
Serbia went back on the attack but were unable to make an early breakthrough, while Varga and Mutu both threatened at the other end.
However, Serbia deservedly took the lead in the 37th minute when Zigic headed home from a Milos Krasic corner.
Moments later Krasic forced goalkeeper Danut Coman into a save at his near post, while at the other end Mutu wasted a free-kick in a good position in first-half injury-time.
Just five minutes into the second half the game was effectively over as a contest as Pantelic struck the second for the home side, although it took until the 78th minute for Kuzmanovic to score the third.
A miserable night for Romania was completed by a red card for captain Cristian Chivu in the 84th minute, and unsurprisingly the depleted visitors conceded two more goals in the dying minutes.
Jovanovic scored both with shots from the edge of the area to ensure the celebrations could begin in earnest.
The win means Serbia will finish top of Group Seven ahead of France, who also enjoyed a 5-0 win today, beating minnows the Faroe Islands in Guingamp.