Portugal got their Euro 2020 qualifying campaign back on track with goals from William Carvalho, Goncalo Guedes, Cristian Ronaldo and Bernardo Silva in a pulsating 4-2 victory in Belgrade on Saturday.
The victory over Serbia lifted the European champions to second place in Group B on five points from three games, eight behind runaway leaders Ukraine.
Ukraine have 13 points from five matches after their 3-0 win in Lithuania earlier on Saturday.
Third-placed Luxembourg and Serbia in fourth both have four points from as many games while Lithuania are bottom with one point from four matches.
Portugal dominated the opening half and Carvalho fired them ahead in the 42nd minute when he poked the ball into an empty net from three metres.
Serbia goalkeeper Marko Dmitrovic had spilled a Bruno Fernandes cross from the right.
Cristiano Ronaldo looked subdued in the opening half.
He was given a hostile reception at Red Star stadium as Serbian fans jeered him every time he touched the ball, but he twice came close early in the second half.
He fired inches wide from the edge of the penalty area after cutting in from the left and then curled a free-kick narrowly off target.
Forward Guedes then doubled Portugal’s lead with a fine individual effort.
He capped a flowing move as he sidestepped a defender and rifled in an unstoppable shot past Dmitrovic into the far corner from 12 metres to silence the raucous home crowd.
Centre-back Nikola Milenkovic pulled one back for Serbia in the 68th minute, heading a Dusan Tadic corner past goalkeeper Rui Patricio.
Taunted by chants of “Messi” from Serbia’s die-hard fans, Ronaldo demonstrated his class in the 80th minute.
He took a Bernardo Silva pass in his stride and coolly dinked the ball over the advancing Dmitrovic.
Serbia refused to roll over as Aleksandar Mitrovic drove a shot from inside the penalty area into the roof of the net after a defensive blunder in the 85th minute.
But Silva sealed the contest with a clinical finish barely 60 seconds later.