Bruno Fernandes created two goals while Cristiano Ronaldo and Bernardo Silva both struck late as Portugal, who lost Nelson Semedo to injury, won 4-2 away to Serbia in Euro 2020 qualifying on Saturday.
After taking two draws from their first two games, including being held at home by Serbia in March, Euro 2016 winners Portugal collected their first Group B victory at Rajko Mitic Stadium.
Goals from William Carvalho and Goncalo Guedes put Portugal in control but an injury to Barcelona full-back Semedo, who left the field after a heavy Aleksandar Kolarov challenge, appeared to disrupt their rhythm.
Nikola Milenkovic's first international goal prompted hope of a Serbia fightback but Ronaldo and Silva scored either side of Aleksandar Mitrovic's rocket with the result ensuring the visitors move up to second in the section.
Serbia skipper Kolarov rifled wide from an early warning shot, but a goalkeeping error from Marko Dmitrovic handed the visitors an easy opener three minutes before the break.
Fernandes floated in a right-wing cross with Dmitrovic clattering into defender Milenkovic and the ball squirting loose for Carvalho to slot into the gaping goal.
Ronaldo fired off target twice in quick succession following the restart, but the Juventus superstar combined with Fernandes to create Portugal's second goal in the 58th minute.
There was work to do for Guedes, who had recovered from an injury scare, but the Valencia forward cleverly jinked into space before lashing a superb drive across Dmitrovic.
Serbia hit back shortly after Semedo's injury, Milenkovic losing Danilo Pereira in the box to crash home a towering header from Dusan Tadic's left-wing corner.
Silva fed Ronaldo to beat Dmitrovic with a dinked finish - although replays showed had strayed offside - before Mitrovic's hammer of a finish, with Tadic again the creator, seemed to have set up a frantic finale.
However, Manchester City star Silva wrapped up the scoring with a low finish four minutes from time.
What does it mean? Portugal on the move
Nations League winners Portugal had a stuttering start to their qualifying campaign, but they are now up and running and have five points from their three games, with a trip to Ukraine - who they trail by eight points - to come.
Serbia's hopes of reaching the finals look to be fading as this was a game they needed to win. It was odd that coach Ljubisa Tumbakovic left Real Madrid striker Luka Jovic on the bench until the 87th minute.
More to the point, Serbia will be annoyed by the lack of VAR for this game given Ronaldo's 80th-minute goal ought not to have counted.
Fernandes shows why Europe's elite wanted him
Sporting CP managed to hold on to Fernandes during the transfer window despite the player revealing he had been close to joining Tottenham, while Real Madrid were also on the list of his reported suitors. With a hand in Portugal's first two goals, it was clear why he was so highly desired.
Dmitrovic error costs Serbia
Serbia had not looked like conceding before Dmitrovic came for a cross he was never likely to reach. It was slightly unfortunate the way the ball ricocheted to Carvalho for a tap-in, but the goalkeeper's misjudgement of a dangerous centre created the situation.
Portugal stay on the road, with Santos' side travelling to winless Lithuania on Tuesday. On the same day, Serbia go to Luxembourg.