Ukraine advanced to the Euro 2020 finals after an impressive first half helped them to a 2-1 home win over Portugal, whose talismanic captain Cristiano Ronaldo scored his 700th career goal in a Group B qualifier on Monday.
The result left Ukraine top of the section on 19 points from seven games, eight more than second-placed European champions Portugal who have a game in hand.
Third-paced Serbia are on 10 points from six games after an Aleksandar Mitrovic brace gave them a 2-1 win at Lithuania.
Luxembourg have four points from six games and the Lithuanians prop the group with one point from seven matches.
Ukraine needed to avoid defeat in order to qualify for their third successive European championship and made a perfect start when Roman Yaremchuk fired them into a sixth-minute lead.
The striker hammered the ball into an empty net from three metres after Portugal goalkeeper Rui Patricio could only parry Serhiy Kryvtsov's close-range header.
Portugal replied with a flurry of raids down either flank but were stunned again in then 27th minute, when livewire Andriy Yarmolenko superbly swept home an inch-perfect Vitaliy Mykolenko cross from the left.
The visitors missed several chances towards the end of the first half before Yarmolenko came close again, firing wide from close range after another swift break by Ukraine.
Ronaldo missed several chances in the second half before a Taras Stepanenko handball in the area, which saw the midfielder sent off as it resulted in a second yellow card, earned Portugal a penalty in the 72nd minute.
Ronaldo blasted the spot kick into the top corner but the home side held out in the closing stages as Ukraine keeper Andriy Pyatov made several good saves, while Danilo Pereira hit the crossbar for Portugal in stoppage time.
With the Portuguese now skating on thin ice, Serbia hauled themselves back into contention for a top-two finish after Aleksandar Mitrovic propelled the Balkan nation to a 2-1 win at Lithuania.
The Fulham striker gave the visitors a 49th-minute lead after good work by Adem Ljajic and the duo doubled Serbia's advantage four minutes later with a move that was almost a bluepirnt copy of the opening goal.
Donatas Kazlauskas pulled one back for Lithuania with a fine shot from the edge of the penalty area in the 79th minute and the home side missed a gilt-edged chance in stoppage time to earn a draw.