Portugal captain Cristiano Ronaldo scored his 99th international goal as the defending champions edged past Luxembourg 2-0 in difficult conditions away from home to qualify for Euro 2020.
Bruno Fernandes broke the deadlock in the 39th minute and Ronaldo wrapped it up with four minutes left to ensure that Portugal finished second in Group B with 17 points, three ahead of Serbia who drew 2-2 with Ukraine.
Diogo Jota’s shot appeared to be going in any way but Ronaldo prodded it over to claim the goal.
He is one short of joining Iran’s Ali Daei, the only player to have scored a century of goals for a national team.
Portugal survived several early scares as they struggled to impose their game on a rain-soaked pitch full of divots at the Josy Barthel stadium on Sunday.
Ronaldo, in particular, was not enjoying the conditions and gestured angrily at the pitch after sending a speculative wide in the first half.
Needing a win to qualify without having to worry about Serbia’s result, Portugal were in trouble early on as Luxembourg saw a chance to spring an upset.
Maurice Deville got above his marker and headed over from Laurent Jans’ cross and Vincent Thill, a thorn in Portugal’s side, had a goal-bound shot blocked by Ruben Dias.
Luxembourg were even closer when a corner found Gerons Rodrigues unmarked but he headed over.
Portugal began to adapt to the conditions and their more direct approach was rewarded with a goal.
Bernardo Silva floated a pass over the Luxembourg defence from deep inside his own half and into the path of Fernandes who took it superbly in his stride and fired a low shot between Anthony Moris and the near post.
The second half was more comfortable for Portugal as they dominated possession although there still anxious moments.
Ronaldo nearly sealed it when he curled a free kick narrowly wide from the edge of the area.
With four minutes left, Silva’s cross found Jota and Moris got a hand to it but could not stop it crossing the line and Ronaldo poked it home for good measure.
A stoppage time equaliser by late substitute Artem Besyedin gave Ukraine a 2-2 draw in Serbia after the home side led twice in the Group B qualifier on Sunday.
The Ukrainians, who had already secured a berth in next year’s 24-nation tournament, finished their campaign top of the group on 20 points from eight games.
A mere 4000 fans turned up at Rajko Mitic stadium although Serbia started the game with an outside chance of qualifying and the home side treated their supporters to a solid performance.
Dusan Tadic fired Serbia ahead with a ninth-minute penalty as he sent goalkeeper Andriy Pyatov the wrong way after Mykola Matviyenko handled the winger’s shot from the edge of the area.
Andriy Yarmolenko hit the post for Ukraine before Roman Yaremchuk levelled in the 32nd minute, heading home from close range after a Viktor Tsygankov cross from the right.
Fulham striker Aleksandar Mitrovic restored Serbia’s lead in the 56th with a fine finish, as he chested down an inch-perfect Tadic cross and steered the ball into the opposite corner with the outside of his foot.
Ukraine laid siege to Serbia’s goal in the closing stages and although home keeper Predrag Rajkovic kept out an Oleksandr Karavaev piledriver, Besyedin scored moments later when he swept a low shot from 10 metres into the bottom corner.