Luis de la Fuente's team easily handled their opponents on a rainy evening in Cordoba, securing their spot in the next stage of Group A4 with two games remaining.
Despite missing several star names vital to their Euro 2024 triumph, Spain were dominant and won with goals from Aymeric Laporte, Alvaro Morata and Alex Baena.
La Roja were without teenage wing wizard Lamine Yamal, who returned to Barcelona after the 1-0 win over Denmark on Saturday with a minor hamstring strain, as well as long-term absentees Rodri Hernandez and Dani Carvajal among others.
Coach De la Fuente started Villarreal’s Baena in place of Yamal and brought Arsenal midfielder Mikel Merino in for Barca playmaker Pedri.
Spain are now unbeaten in 14 matches and unlike in a tight 0-0 draw in Belgrade in September, created a flood of chances.
Centre-back Laporte sent the hosts ahead in the fifth minute when he nodded home Pedro Porro’s cross.
Merino headed against the post and was particularly active in the first half, with a goal-bound shot blocked after good work by Marc Cucurella and the effortlessly-smooth Fabian Ruiz.
Mikel Oyarzabal twice came close but was denied by Serbia goalkeeper Predrag Rajkovic, who also saved from Morata, while Martin Zubimendi fired narrowly off-target.
Morata, who had not scored for Spain since the first game of the Euros, should have doubled his team’s lead soon after the break.
The AC Milan striker rifled a penalty high over the crossbar after Veljko Birmancevic handled Porro’s cross.
Morata kept plugging away and eventually found the net with a neatly-placed finish after Fabian Ruiz played him in.
With little under 15 minutes remaining Serbia’s night took a turn for the worse when Strahinja Pavlovic was sent off for scything down Euro 2024 final goalscorer Oyarzabal as he burst towards the box.
Despite Pavlovic’s efforts to deny Spain a third, Baena expertly dispatched the resulting free-kick.
Pedri hit the crossbar late on for Spain on a satisfying night for the European champions in Andalucia. AFP