Samuel Umtiti scored the only goal, beating Marouane Fellaini at the near post to head home Antoine Griezmann's corner in the 51st minute.
The first half was a goalless but enthralling affair with both teams testing their opposite number but failing to make the breakthrough.
The best chance of the opening 45 minutes fell to an unlikely source as Belgium defender Toby Alderweireld tested France goalkeeper, and Tottenham team-mate, Hugo Lloris with a smart turn and shot from 12 yards.
France started the second half in the ascendency as Umtiti made sure their pressure paid off with the opener.
Belgium pushed for an equaliser, Fellaini heading wide Dries Mertens' cross from close range shortly after the goal, but failed to truly test Lloris as the clock ticked down.
Les Bleus will now face either England or Croatia in Moscow on Sunday, having last reached the World Cup final in 2006 when they lost on penalties to Italy after Zinedine Zidane famously got sent off for a headbutt.