Ten-man France edged an end-to-end contest with the Three Lions, despite Harry Kane taking his England goal tally to three in four days.
Kane, named captain for the second successive match, followed up Saturday’s last-gasp equaliser in Scotland with an early strike to put England in front.
They trailed by half-time though, with defenders Samuel Umtiti and Djibril Sidibe both scoring from rebounds following smart saves by Tom Heaton, making his first England start.
The Three Lions last enjoyed success in France in June 1997, but sensed the chance to go on and win at the start of the second half when Kane scored from the penalty spot after Raphael Varane was sent off for a foul on Dele Alli.
But, with the match in the balance, the Euro 2016 runners-up found a winner through 20-year-old midfielder Ousmane Dembele.
Before kick-off ‘Don’t Look Back in Anger’ echoed around the Stade de France and then home supporters joined England’s travelling fans in singing ‘God Save the Queen’ – thoughtful tributes following the recent terror attacks in Manchester and London.
Once the action on the pitch started it took just nine minutes for England to make the breakthrough. Alli’s cross-field pass landed at the feet of Raheem Sterling inside the box. The Manchester City winger back-heeled the ball into the path of Ryan Bertrand on the overlap, and the left-back put a low cross into the six-yard box that Kane finished past Tottenham Hotspur team-mate Hugo Lloris.