World champions France and Germany rode on the influence of their Chelsea stars to rack up Nations League wins on Saturday while Spain's Sergio Ramos missed two penalties on the night he celebrated a record-setting 177th international appearance.
Chelsea midfielder N'Golo Kante scored just his second international goal as France defeated European champions Portugal 1-0 in Lisbon to secure a place in next year's finals.
Kante was quickest to react to a rebound as he netted the winner on 53 minutes that clinched France top spot in their group.
France lead Cristiano Ronaldo's Portugal by three points ahead of Tuesday's clash with Sweden in Paris but are guaranteed first place by virtue of their superior head-to-head record.
"It's very nice to see them snatch the win. It's deserved. We've fulfilled our objective of finishing first," France coach Didier Deschamps said after the win over a Portuguese side which had won the inaugural Nations League title on home soil in 2019.
Kante's teammate in the English Premier League Timo Werner scored twice on his return to Leipzig as Germany enjoyed a 3-1 win over Ukraine.
Werner spent four years at Leipzig before moving to London and he flourished in familiar surroundings at the Red Bull Arena despite the absence of fans.
The win leaves Germany undefeated in their last 12 games and top of their group, a point ahead of second-placed Spain with the sides due to meet in Seville on Tuesday.
"I had four good years here and it was fun to come back and win," Werner told ZDF.
Ukraine took an early lead when Roman Yaremchuk caught the German defense napping.
The hosts roared back with three unanswered goals by Leroy Sane and Werner, who scored either side of halftime, to seal a deserved win.
In Basel, Ramos missed two penalties as Spain needed a late equalizer from Gerard Moreno to draw 1-1 with Switzerland.
Ramos was making his 177th appearance to break the international appearances record for a European player, pulling clear of Italy's Gianluigi Buffon, who has 176.
But it was a night to forget for the defender, who saw one spot kick saved by Swiss goalkeeper Yann Sommer but backed himself to score a second, only to miss again with a dreadful attempted "Panenka."
Ramos had previously scored 25 penalties in a row and his inaccuracy from the spot cost Spain, who will now have to beat Germany to reach the final stage.
"Sergio's numbers for penalties are out of this world," said Spain coach Luis Enrique.
"If there had been a third penalty, he would have taken that one as well."
Remo Freuler gave the Swiss a 26th-minute lead but they had Nico Elvedi sent off for conceding the second penalty with 11 minutes left.
Spain finally found an equalizer in the 89th minute as Moreno capitalized on a tiring Swiss defence by converting Sergio Reguilon's cross.
Shadow of COVID-19
After losing all four of their opening games in the Nations League, Sweden finally found some form in Solna, beating World Cup runners-up Croatia 2-1.
The Swedes, whose coach Janne Andersson has been sidelined with coronavirus, were 2-0 up at halftime.
Juventus star Dejan Kulusevski opened his international account in the 36th minute when the 20-year-old controlled a long pass from Mikael Lustig before scoring.
Defender Marcus Danielson, who plays his club football in China with Dalian Pro, headed in the second from a corner in first-half stoppage time.
Danielson had the misfortune to put through his own goal with eight minutes left after making contact with an Ivan Perisic header.
Croatia had beaten the Swedes 2-1 in their first meeting but they arrived for the return without midfielder Marcelo Brozovic and defender Domagoj Vida, both of whom had tested positive for COVID-19.
The coronavirus pandemic also saw UEFA cancel Sunday's match between Romania and Norway after Norwegian authorities banned the squad from travelling to Bucharest due to a COVID-19 case.
Norway's health minister had ordered the squad not to travel after fullback Omar Elabdellaoui tested positive for coronavirus.