Switzerland were able to beat France on penalties to advance into the Euro 2020 last 16 after Kylian Mbappe missed the crucial kick.
The Swiss had been seconds away from elimination during 90 minutes but go through to face Spain after progressing from a major tournament knockout game for the first time since 1938.
Haris Seferovic headed the Swiss ahead and they had a penalty saved that could have made it 2-0 before Karim Benzema scored twice and Paul Pogba put France 3-1 up with a screamer.
Seferovic headed in his second goal of the game for Switzerland and substitute Mario Gavranovic hammered in a last-minute equaliser to send the game to extra time.
Mbappe missed a couple of big chances for the world champions in extra time and Olivier Giroud had a header saved in the final minute.
Paris St-Germain forward Mbappe was the only player to fail to score in the shootout, after an excellent Yann Sommer save.
Switzerland play Spain, who also came through a thriller – 5-3 after extra time against Croatia – in the quarter-final in St Petersburg on Friday.