France scored an early goal and hung on to win 1-0 in Bulgaria to stay on pace to finish top of UEFA World Cup qualifying Group A on Saturday night.
It took less than three minutes for France to take the lead as Lucas Digne's low cross found Antoine Griezmann, who laid the ball off for Blaise Matuidi to score from a tight angle.
France lost N'Golo Kante do an apparent hamstring injury in the 33rd minute, and Hungary nearly equalised a few minutes later, only for Hugo Lloris to make a tremendous diving save to deny Georgi Kostadinov.
But France saw out the three points to maintain their one-point lead over Sweden, and Les Bleus can seal their qualification to Russia by beating Belarus at home on Tuesday.
Earlier, Sweden had kept up the pressure on France with an 8-0 win over Luxembourg.
The hosts took the lead within 10 minutes as Ola Toivonen was fouled in the box by Christopher Martins Pereira and Andreas Granqvist stepped up to slot home. On 17 minutes, Marcus Berg cut inside and hammered home for the second before breaking through and grabbing his second after a rebound off the goalkeeper before half-time.
The forward then bagged his hat trick and, minutes later, Mikael Lustig made it 5-0 before Granqvist converted another penalty. Berg had time to pounce for a fourth on his 50th appearance for his country, before being substituted.
Toivonen struck a wonderful volley to make it 8-0 and Luxembourg were embarrassed in their next test following one of their finest-ever results in holding France to a 0-0 draw.
Netherlands needed a late penalty to escape Belarus with a 3-1 win, though their hopes of reaching a playoff spot are practically nil after Sweden's big win.
The Dutch trail Sweden by three points, and although they host the Swedes on Tuesday, the Organje will need to win by at least seven goals or miss out on a second successive major tournament.
The opening goal came in the 24th minute when Ryan Babel played a cross to the far post for Arjen Robben, who with one touch centred for Davy Proepper to score.
But Hungary equalised 10 minutes after half-time as Sergey Balanovich led a counter-attack and found Maksim Volodko to slot his low shot out of the reach of Jasper Cillessen.
Netherlands left it late but pulled back in front when Nikolai Signevich fouled Bas Dost in the box and Robben converted the resulting penalty, before Memphis Depay found a third goal from a free kick in the waning seconds.
Switzerland maintained their three-point lead over Portugal with one game to play in Group B by cruising past Hungary 5-2.
Ahead of Tuesday's crunch clash in Portugal, the Swiss took the lead in comical circumstances in the 8th minute as goalkeeper Peter Gulacsi lost his footing while preparing to play the ball and Granit Xhaka pounced on the loose ball.
Fabian Frei's deflected shot doubled the lead two minutes later, and Switzerland added a third before the break as Xherdan Shaqiri won the ball back outside the Hungary box and played in Steven Zuber to score.
Zuber then added his second and Switzerland's fourth from 20 yards out early in the second half, and though Hungary were able to get a goal back through Richard Guzmics, Stephan Lichtsteiner made it 5-1 with seven minutes to play before Roland Ugrai added a late second for the visitors.
The Swiss can qualify on Tuesday with at least a draw in Portugal, who needed Cristiano Ronaldo to come off the bench to rescue a 2-0 victory in Andorra.
With the crucial game against Switzerland in three days' time, Portugal coach Fernando Santos opted to start with Ronaldo on the bench but was forced to bring him on at half-time after they failed to break through.
The goal finally came in the 63rd minute when defender Ildefonso Lima could only get a slight touch to Joao Mario's cross, and the ball fell to Ronaldo to score.
Ronaldo then started the play on the second goal in the 86th minute by sending a cross in for Danilo Pereira, who headed back across goal for Andre Silva to tap-in and secure the result, leaving Portugal in position to qualify over Switzerland with another win on Tuesday.
In Group H, Greece moved above Bosnia and Herzegovina into second place by rallying to defeat Cyprus 2-1.
Pieros Sotiriou beat the offside trap to put Cyprus ahead in the 18th minute, scoring with his second attempt after he first was saved.
But Greece quickly responded as Petros Mantalos intercepted a poor pass and fed Kostas Mitroglou, who spun around a defender before equalising, and two minutes later the visitors led through Alexandros Tziolis' header following a corner.
Greece now lead Bosnia by two points and face minnows Gibraltar on Tuesday, but even if they finish second they could still face the possibility of missing out on the playoffs. Cyprus' last hopes ended with the defeat.
Earlier, already-qualified Belgium beat Bosnia and Herzegovina 4-3, who missed out on a vital three points in their hope of sealing a playoff place.
PSG defender Thomas Meunier opened the scoring inside the first five minutes after an assist from Eden Hazard, but Haris Medunjanin hit back on 30 minutes after Manchester United midfielder Marouane Fellaini had been substituted with an injury.
Edin Visca then completed the comeback for Bosnia before half-time after an error from Jan Vertonghen, but Chelsea striker Michy Batshuayi hit back to equalise in the second half and Vertonghen put Belgium ahead again.
Bosnia were not done and equalised in the 82nd minute through Dario Dumic, but Yannick Carrasco made it 4-3 seconds later -- a result which also guarantees Italy a place in the playoffs, while Scotland and Wales can also secure progress via the playoffs if they win their match against each other on Monday, as can Croatia if they beat Ukraine.
Another game in the same group between two teams with no hope of progress saw Gibraltar lose 6-0 to Estonia after goals from Siim Luts, Mattias Kait, Sergei Zenjov and a 25-minute Joonas Tamm hat trick.
And in the day's other early kick-off in Group B, Latvia and Faroe Islands drew 0-0. Latvia moved level on points with Androrra at the bottom of the group.