Randal Kolo Muani’s deflected late strike sent France into the Euro 2024 quarter-finals in an agonising defeat for Belgium.
Les Bleus made most of the running in a cagey game but were reckless with their finishing, until a nice combination of passes, finished off by N'Golo Kante, finally created space for Kolo Muani to bundle his shot in off the leg of Jan Vertonghen.
France will now meet the winner of Monday's match between Portugal and Slovenia in the quarter-finals in Hamburg on Friday.
It was a fittingly scruffy decider for an underwhelming game, but France at least looked like they were trying to win it.
It was a meeting between officially the second (France) and third (Belgium) best teams in the world, but after both limped into the knockout stage via unimpressive final group-stage draws, managing only two goals apiece from their three games, they looked extremely cautious in attack.
Belgium clearly had a plan to take any speed out of the game, playing at less than walking pace at times, with Kevin de Bruyne often operating just in front of his back four.
The best chance of the first half came for France after 34 minutes when Jules Kounde whipped in a curling cross that recalled striker Marcus Thuram headed wide and spent the next two minutes berating himself for.
Aurelien Tchouameni forced Koen Casteels into his first save of the day soon after the break, while ever-lively Kylian Mbappe miskicked a decent chance as France began to put some passes together.
A rare Belgian thrust was cut short by a brilliant Theo Hernandez tackle just as Yannick Carrasco was about to pull the trigger, and Romelu Lukaku and De Bruyne then brought good saves from Mike Maignan.
France's poor finishing continued with William Saliba and Mbappe both blazing over before Kolo Muani struck late on to win it.