Cristiano Ronaldo scored his 99th international goal as defending champions Portugal confirmed their place at the Euro 2020 finals with a 2-0 win in Luxembourg.
Victory at the Stade Josy Barthel ensured Fernando Santos' side would finish runners-up in Group B behind Ukraine, who completed their campaign with a 2-2 draw with third-placed Serbia.
Portugal took the lead through Bruno Fernandes after 39 minutes and Ronaldo tapped in the second from point-blank range following a shot from Diogo Jota.
The Wolves forward's effort had been half stopped by Luxembourg goalkeeper Anthony Moris but Ronaldo pounced on the line to force the ball in and leave him one away from becoming only the second man in history to net 100 international goals.
Serbia had gone into their game in Belgrade knowing they needed to win and hope Portugal did not in order to snatch second place.
Serbia got off to a good start when Dusan Tadic gave them the lead from the penalty spot after nine minutes but Roman Yaremchuk drew the visitors level just after half an hour.
Aleksandar Mitrovic restored Serbia's lead 11 minutes into the second half but Artem Besyedin equalised late on to ensure the game finished 2-2 and condemn Serbia to the play-offs.
England qualified as one of the top six seeds with a flattering 4-0 win against Kosovo in Group A in Pristina.
Harry Winks gave the visitors the lead in the first half before late strikes by Harry Kane, Marcus Rashford and Mason Mount added extra gloss to the result.
The Czech Republic also qualified for the finals despite a 1-0 defeat in Bulgaria, with the only goal of the game coming from Vasil Bozhikov after 56 minutes.
France and Turkey finished Group H with a flourish even though both had already qualified for the finals.
France were 2-0 winners in Albania and Turkey triumphed by the same scoreline away to Andorra.
France topped the group courtesy of goals from Corentin Tolisso and Antoine Griezmann.
Turkey defeated Andorra as Enes Unal struck twice in four first-half minutes, the second a penalty.
Iceland, who were already assured of a place in the play-offs, won 2-1 in Moldova.
The visitors took the lead through Birkir Bjarnason after 17 minutes but Moldova drew level through Nicolae Milinceanu 11 minutes into the second half.
Gylfi Sigurdsson's goal with 25 minutes to go settled the tie but the Everton midfielder also missed a penalty with 11 minutes remaining.