Antoine Griezmann's double sent hosts France through to the final of Euro 2016 with a 2-0 win over world champions Germany in Marseille.
Griezmann gave Les Bleus the lead from the spot after Germany captain Bastian Schweinsteiger was adjudged to have handled inside the penalty area right on the stroke of half time.
Joachim Low's men dominated proceedings until the spot-kick decision, but they posed less of a threat after the break – failing to register a shot on target until injury time as France defended stoutly.
And Griezmann sealed the victory in the closing stages after mistakes from Joshua Kimmich and Manuel Neuer presented him with a simple finish.
Germany had beaten France en route to their World Cup success two years ago, but they will not secure a famous double as their 20-year wait for a continental crown goes on, with Portugal now awaiting Les Bleus in Sunday's final at Stade de France.
After winning their first major semi-final appearance since the 2006 World Cup, Didier Deschamps' side will be favourites as they look to seal glory having won their two previous Euro finals.
France – playing with an unchanged team for the first time in Euros history – came close early on when Griezmann weaved through the Germany defence and forced Neuer into an important low save.
Germany responded swiftly, with Hugo Lloris at full stretch to keep out a threatening deflected effort from Emre Can, who was one of three changes for the world champions as they re-shuffled their pack due to the absences of Mario Gomez, Mats Hummels and Sami Khedira.
Die Mannschaft were the more threatening side as the first half progressed as Toni Kroos went down right on the edge of the box under pressure from Paul Pogba and Samuel Umtiti, but referee Nicola Rizzoli was unmoved as the Real Madrid midfielder claimed for a penalty.
Germany were taking charge of possession, but the match took a dramatic twist seconds before the half-time whistle when Rizzoli did point to the spot at the other end.
In the match that saw him crowned the most-capped European player at major international tournaments, Schweinsteiger denied Evra the chance to head at goal with his arm from close-range after Griezmann's corner.
Griezmann stepped up and he showed no nerves to send Neuer the wrong way despite having missed a penalty in the Champions League final for Atletico Madrid less than six weeks ago.
And Germany suffered another huge blow when key centre-back, Jerome Boateng, limped off after an hour at the Stade Velodrome.
Germany continued to have most of the ball in the second half, but they had failed to trouble Lloris before Griezmann secured a famous home victory with 18 minutes remaining.
Pogba capitalised on a defensive error from Kimmich and when Neuer could only push his cross into the path of Griezmann, the forward stabbed home his sixth goal of the tournament.
Kimmich - trying to atone for his earlier error - curled an excellent effort off the far post from the edge of the area, but Germany ultimately failed to trouble Lloris until it was too late.
The Tottenham keeper made a brilliant stoppage-time save from Kimmich's header to preserve his clean sheet as France booked their date against Portugal in the final on home soil.