The game looked destined for extra time, and potentially penalties, before Randal Kolo Muani's late effort deflected off Jan Vertonghen and into the Belgian net.
Here, Sports Mole provides player ratings from a clash between two European heavyweights in Dusseldorf.
France player ratings vs. Belgium: Jules Kounde and Theo Hernandez perform admirably
GOALKEEPER
Mike Maignan - 7/10
A third clean sheet of Euro 2024 and plenty more important saves in the second period, when the AC Milan stopper was tested with De Bruyne's long-range efforts.
DEFENCE
Jules Kounde - 8/10
Star of the show in Dusseldorf. Kept Jeremy Doku extremely quiet and had plenty of influence on the attack for France.
Dayot Upamecano - 6/10
A steady display from the centre-back after criticism in recent matches. A worthy partner of Saliba in this one.
William Saliba - 7/10
Enjoyed the physical battle with Lukaku and came out on top more times than not.
Theo Hernandez - 8/10
On par with fellow full-back Kounde. Made a vital last-gasp block in the second period to prevent a Belgian opener.
MIDFIELD
Aurelien Tchouameni - 6/10
Controlled things from the engine room nicely enough but should have shown more composure with his efforts on goal.
N'Golo Kante - 7/10
Another tireless display from a man who many had written off at the top level. Saudi Arabia has clearly kept him fresh.
Adrien Rabiot - 6/10
Operated in midfield and not on the left as reports had suggested might be the case. Produced a solid display.
ATTACK
Antoine Griezmann - 7/10
A vital part of the French attack, acting as a rebounder for Mbappe at times. Often crowded out by a host of Belgian bodies.
Marcus Thuram - 6/10
The only French player to be subbed off in Dusseldorf. Energetic enough but should have done better with two headed efforts.
Kylian Mbappe - 7/10
The masked man threatened to take the game by the scruff of the neck but did not find his moment. An exciting watch nevertheless.
SUBSTITUTES
Randal Kolo Muani - 7/10
Subbed on to make a difference and had a massive say in the only goal of the game, even if it will certainly go down as an own goal.
Belgium player ratings vs. France: Kevin De Bruyne and Jeremy Doku restricted
GOALKEEPER
Koen Casteels - 6/10
Did not have much to do despite France's pressure. Helpless for the only goal of the contest.
DEFENCE
Wout Faes - 5/10
Part of a resolute backline but was wasteful on the ball at times.
Jan Vertonghen - 6/10
Extremely unlucky with the own goal during possibly his final major tournament appearance.
Arthur Theate - 6/10
Had a difficult afternoon dealing with the runs of Kounde.
MIDFIELD
Timothy Castagne - 6/10
Lost control and hold of Mbappe on a couple of occasions.
Amadou Onana - 7/10
A disciplined display from the Everton enforcer. Managed to get the better of Mbappe at times.
Kevin De Bruyne - 6/10
Saw his creativity stifled by a more defensive role, much more influential during the second period.
Jeremy Doku - 5/10
Had little joy against Kounde on the left but was still a pulsating watch.
ATTACK
Yannick Carrasco - 6/10
Some excellents runs forward and could have scored the opener if not for Hernandez's sliding intervention.
Lois Openda - 6/10
Given a difficult task. Buzzed around Lukaku with plenty of effort but had little impact.
Romelu Lukaku - 5/10
Finishes the tournament without finding the net. Met his physical match in Saliba.
SUBSTITUTES
Orel Mangala - 5/10
Booked during his brief cameo and could not provide the energy to prevent a late French winner