Kylian Mbappe sensationally missed the decisive shoot-out penalty as Switzerland knocked out Euro 2020 favourites France after a six-goal thriller to set up a quarter-final clash with Spain.
The superstar striker stepped up to take the 10th kick of the shoot-out but was denied by a brilliant stop by Swiss goalkeeper Yann Sommer to cap a classic contest and a day of incredible drama at the European Championships.
Early in the game Switzerland had taken a shock lead through Haris Seferovic's header (15), but France turned it around with a four-minute burst featuring a Hugo Lloris penalty save and Karim Benzema double (57, 59), before Paul Pogba (75) looked to have sealed it by curling a stunning shot into the top corner.
However, just like Croatia against Spain earlier in the day, Switzerland refused to lie down and produced their own comeback in the final nine minutes, with Seferovic powering in another header (81), and Mario Gavranovic (90) firing in from the edge of the box after seeing a previous strike ruled out for offside.
There was still time for Kingsley Coman to hit the bar and his team-mates passed up several chances in extra-time but, while Croatia were eventually unable to pull off an upset in their epic, Switzerland shocked world champions France with Sommer denying Mbappe to book a trip to St Petersburg for a quarter-final on Friday.
France: Lloris (7), Varane (5), Lenglet (5), Kimpembe (4), Pavard (5), Pogba (9), Kante (6), Rabiot (6), Griezmann (7), Benzema (8), Mbappe (6).
Subs: Coman (7), Giroud (6), Thuram (6), Sissoko (5)
Switzerland: Sommer (9), Elvedi (7), Akanji (7), Rodriguez (6), Widmer (6), Freuler (6), Xhaka (8), Zuber (7), Shaqiri (7), Embolo (7), Seferovic (8).
Subs: Mbabu (7), Mehmedi (6), Fassnacht (6), Gavranovic (9), Schar (7), Vargas (7).
Man of the match: Yann Sommer (Switzerland)
How the Swiss stunned France...
Tournament favourites France, beginning with an unusual back three, made a fast start, with Raphael Varane heading over from a corner inside two minutes and Mbappe and Benzema looking dangerous in the box. But Switzerland embraced the high tempo with early corners of their own - and their positive approach to the contest was rewarded on 15 minutes.
Seferovic produced a textbook centre-forward's header to convert Steven Zuber's cross and Swiss fans - who had been so critical of their team's group-stage performance - were in dreamland.
- France made three changes from the side which drew with Portugal, with Corentin Tolisso and Lucas Hernandez dropping to the bench, while the injured Jules Kounde misses out completely. Benjamin Pavard, Clement Lenglet and Adrien Rabiot come in for the world champions, who switched to a back three.
- Switzerland were unchanged from the side which beat Turkey in their final group game.
It was the third game in a row France had conceded first and they were denied an immediate response when first Nico Elvedi and then goalkeeper Sommer made vital interventions to prevent crosses reaching Pogba and Benzema.
Adrien Rabiot drilled a low shot just wide of the far post as France began to build up the pressure - but Breel Embolo missed out at the other end when he did not catch a glancing header right from a wide free-kick.
- How the teams lined up | In-depth stats and analysis
- Subscribe to the Sky Sports Football Euros Podcast
- Euro 2020 fixtures and schedule
A wild, off-target shot from Mbappe just before the break summed up the frustration for France in the first half and Didier Deschamps made a significant change for the second 45, with Coman sent on for Clement Lenglet as the world champions reverted to their more familiar back four.
It did not make them any less susceptible at the back, though, and after Embolo almost found Seferovic in the box, Benjamin Pavard cleaned out Zuber just on the edge of the area and, after an eventual VAR check, the Swiss were awarded a penalty.
It was a golden opportunity for the underdogs - but Ricardo Rodriguez's tame effort triggered a turnaround.
Lloris saved it well down to his right and two minutes later Benzema had the ball in the net.
The Real Madrid striker produced a wonderful touch to tap Mbappe's pass from underneath himself and poked it past Sommer from close range.
And France had the lead two minutes later via another fantastic flick. This time it was Mbappe's clip to release Antoine Griezmann whose shot looped up for Benzema to nod in from a yard out.
Switzerland's Silvain Widmer narrowly failed to turn the ball in at the back post from a free-kick when the offside flag against him may well have been overruled by VAR but then a moment of pure class looked to have settled the tie.
Pogba received the ball 25 yards out and bent a beautiful shot into the top corner, giving Sommer no chance.
With France turning on the flair, it seemed at that point a question of not if Les Bleus would win, but by how many.
Switzerland, though, refused to roll over and staged their own sensational nine-minute turnaround.
First Seferovic headed in Kevin Mbabu's delicious cross to give them hope and then, after Gavranovic had seen a strike ruled out for offside, the sub came up with a brilliant shot from Granit Xhaka's pass to beat Lloris from the edge of the box.
That hard work was almost instantly undone when Coman rattled the bar with the final kick in normal time but the game was forced into extra-time, with Pavard going closest in the first 15 minutes when a fingertip save from Sommer kept out his volley.
Mbappe squandered a great chance when Pogba played him in after the break and Olivier Giroud's header was clasped by Sommer, but with neither side able to find the net again, a penalty shoot-out was needed to separate them.
Despite the pressure, both sides were flawless from the spot - until Sommer read Mbappe's kick perfectly and sparked wild celebrations from the Swiss players and supporters, as France crashed out.
The pundit verdict
Gary Neville on ITV: "Kylian Mbappe has aspirations of being the greatest player in the world like Cristiano Ronaldo and Lionel Messi, and this is a bump in the road for him. The next few weeks will be a massive test for him. He will come through it.
"I thought Switzerland would be the perfect opponents to springboard the French assault on the tournament. But they have shocked us all. I am stunned by what l have just seen in the last 120 minutes.
"It was a mess for France from the first minute. They were complacent and the system in the first half was all wrong - the players didn't have a clue what they were doing."
Roy Keane on ITV: "This is why it's the greatest game on the planet. The French turned up with the wrong attitude. I am glad they have got punished for that. You can have all the quality in the world, but if you don't turn up with the right attitude it's hard to turn it back on."
- France have failed to reach the quarter-final stage of a major tournament (Euros/World Cup) for the first time since the 2010 World Cup.
- Switzerland have reached the quarter-finals at a major tournament (Euros/World Cup) for the first time since the 1954 World Cup, while this was their first-ever penalty shootout victory in either competition.
- Switzerland have scored 3+ goals in consecutive major tournament matches (Euros/World Cups) for the first time since the 1954 World Cup.
- Switzerland's Steven Zuber provided his fourth assist at Euro 2020, no player has ever provided more at a single European Championships tournament (since 1980).
- Haris Seferovic has scored in consecutive major tournament games (3 goals), after scoring just once in his previous 13 appearances across European Championships and World Cups.
Switzerland will play Spain in the Euro 2020 quarter-finals in St Petersburg on Friday, July 2, with kick-off at 5pm.