Didier Deschamps’ side will face England or Croatia in Moscow on Sunday as the French look to lift the trophy for the second time following their triumph on home soil in 1998.
In an enthralling tactical match, it was once again a set-piece that proved decisive with Umtiti’s near-post header from an Antoine Griezmann corner settling matters.
Belgium took early control of midfield with France content to sit deep and eliminate the threat of counter-attacks from Eden Hazard and Kevin de Bruyne.
But it was by no means a purely negative approach as the French offered their own danger on the break, perfectly illustrated when Paul Pogba’s delivery sent Kylian Mbappe racing towards goal and Belgium were thankful their keeper Thibaut Courtois was alert to snuff out the danger.
The first real opening came in the 16th minute when De Bruyne hooked the ball into the path of Hazard whose shot was just wide of Huge Lloris’s far post.
Hazard was dangerous again moments later when he cut in from the left and unleashed a rasping drive which clipped off the back of Raphael Varane and just over the bar.
From a Belgium corner, Toby Alderweireld tested Lloris with a smart shot on the turn but as the half progressed France began to create more.
Olivier Giroud flashed a header just wide and Mbappe set up Benjamin Pavard whose low shot was kept out by the outstretched leg of Courtois.
It was a fascinating first half and all that was missing was a goal but one came soon after the break.
From Griezmann’s corner, Umtiti beat Marouane Fellaini at the near post and powered a header home to put France ahead.
Fellaini flashed a header just wide and Axel Witsel forced a good save out of Lloris as Belgium pushed forward for an equaliser and France hung on in six minutes of stoppage time to book their place in the final.