Samuel Umtiti was the hero for France as his second-half header sealed a 1-0 victory over Belgium and a place in the World Cup final.
The Barcelona defender rose high at the near post on 51 minutes to divert an Antoine Griezmann corner beyond Thibaut Courtois as France edged a tense, tactical semi-final in Saint Petersburg.
Sensational saves from Hugo Lloris and Courtois prevented the game from setting alight in the first half before Umtiti’s header and a resilient defensive unit proved too tough an obstacle for Roberto Martinez’s men to overcome.
The result means it will be bronze at best for Belgium’s golden generation at Russia 2018 while France can set their sights on Moscow and a third World Cup final, where either England or Croatia stand between them and football’s greatest prize.
France: Lloris (8), Pavard (6), Varane (8), Umtiti (8), Hernandez (6), Pogba (8), Kante (7), Matuidi (7), Mbappe (7), Griezmann (7), Giroud (6).
Subs: N’Zonzi (5), Tolisso (5).
Belgium: Courtois (7), Alderweireld (6), Kompany (6), Vertonghen (6), Chadli (5), Fellaini (5), Witsel (5), Dembele (5), De Bruyne (6), Hazard (7), Lukaku (5).
Subs: Mertens (6), Carrasco (5), Batshuayi (NA).
Man of the match: Raphael Varane.
WATCH MATCH VIDEO BELOW