An Antoine Griezmann double sank Germany, setting up a France-Portugal final at Euro 2016.
The Atletico Madrid man got the opener from the spot, before adding a second after Manuel Neuer’s mistake.
Les Bleus were looking to reach the final on home soil for a third hosting tournament in a row, having lifted the trophy at Euro ’84 and World Cup ’98.
For Joachim Löw’s side, who had knocked out Italy in the previous round, there was the chance to move one step closer to adding the European Championship to the World Cup they won two years ago.
France started on the front-foot, and Griezmann ran through the German defence before drawing a smart save from Manuel Neuer on seven minutes.
Hugo Lloris had a save of his own to make, getting a strong hand on Emre Can’s deflected effort from the edge of the area.
Toni Kroos had appeals for a penalty waved-away, before Neuer saved Payet’s long-range free-kick.
France’s early momentum has dissipated, and Samuel Umtiti had to be alive to prevent Müller from opening the scoring just after the half hour mark.
With half-time looming, Didier Deschamps’ side had a chance on the break, but Olivier Giroud was too slow to escape from Höwedes, and opted not to pick out Griezmann.
It was immaterial just minutes late though, as Bastian Schweinsteiger handed France a penalty, in a literal sense.
The Manchester United man charged into an aerial challenge with his arm outstretched and rizooli rightly pointed to the spot. Antoine Griezmann made no mistake, sending the ball into the top corner as Neuer dived the wrong way.
Immediately after the break, Giroud was denied by a fantastic block as Les Bleus looked to get a killer second.
The Mannschaft’s hopes took another blow with an hour gone, as Jerome Boateng attempted a trademark, raking crossfield pass but his hamstring went and he had to go off.
La Marseillaise was ringing around the stadium in Marseille, and the noise got even more deafening when France doubled their advantage.
Substitute Shkodran Mustafi dithered in the box, allowing Juventus midfielder Paul Pogba to nock the ball from him.
The midfielder teased the German defence before swinging in a left-footed cross, which Neuer could only flap at, allowing Griezmann an easy finish.
While Germany ramped up the pressure after that, and Lloris was at full-stretch to deny Joshua Kimmich, that was the only real chance and France held on to set up a final with Portugal.
Germany 0-2 France
Griezmann pen 45+2, 72 (F)
Germany: Neuer; Kimmich, Höwedes, Boateng (Mustafi, 61), Hector; Schweinsteiger (Sane, 79), Kroos, Can (Götze, 67); Özil, Müller, Draxler
France: Lloris, Sagna, Koscielny, Umtiti, Evra; Pogba, Matuidi; Sissoko, Griezmann (Cabaye, 91), Payet (Kante, 71); Giroud (Gignac, 77)
Referee: Rizzoli [ITA]