A Samuel Umtiti goal proved enough for France to beat Belgium 1-0 today in Saint Petersburg and set-up a FIFA World Cup final against either Croatia or England.
It will mark a third World Cup final for the 1998 champions after they lost the 2006 final to Italy.
Belgium started well at the Krestovsky Stadium and dominated possession for large parts of the first-half as they sought to build on their quarter-final victory over Brazil.
But, with Samuel Umtiti and Raphael Varane superb in France's central defence and N'Golo Kante and Paul Pogba marshalling the midfield, Belgium striker Romelu Lukaku was unable to dominate the way he had against Brazil.
Fellow Belgian attackers Eden Hazard and Kevin de Bruyne, despite enjoying good moments, proved unable to exert the same influence.
France's goalkeeper Hugo Lloris also saved brilliantly from an instinctive first-half shot by Belgium's Toby Alderweireld.
France enjoyed chances of their own through Benjamin Pavard and Olivier Giroud but finally broke the deadlock after in the 51st minute.
Barcelona defender Umtiti rose above Marouane Fellaini to head home powerfully from an Antoine Griezmann corner.
It marked the 69th set piece goal out of 158 scored at the World Cup, including penalties.
Lloris produced another good save from Axel Witsel but France looked strong and organised enough to repel the Belgian attacks.
It marked Belgium's first defeat of any kind since a friendly loss against Spain in September 2016.
They will have a chance to play again in the same venue on Saturday (July 14) in the third-place playoff.
Croatia will first meet England at the Luzhniki Stadium in Moscow tomorrow in the second semi-final.