Hosts France advanced to the Euro 2016 final with their first victory over Germany in a major tournament since 1958 on a night of high emotion.
Antoine Griezmann, the tournament’s top scorer, made the decisive contributions in each half to set up a final against Portugal on Sunday.
Griezmann scored from the penalty spot right on half-time when Germany’s Bastian Schweinsteiger was penalized for handball by the Italian referee in an aerial challenge with Patrice Evra.
France held out against German pressure before Griezmann settled the destination of a pulsating semi-final with 18 minutes left when he turned in from close range after the keeper could only half-clear Paul Pogba’s cross.
Joshua Kimmich then hit the woodwork for Germany and also saw a header brilliantly saved by France keeper Hugo Lloris – but there was no way back for the World Cup holders.