Spain reached the last four of the European Championship for the third time running on Friday evening, beating Switzerland 3-1 on penalties after the two teams had battled to a 1-1 draw in Saint Petersburg.
It took Luis Enrique's men just eight minutes to break the deadlock. Koke's corner was half-cleared out of the area, before Jordi Alba's rasping strike deflected off Denis Zakaria and sailed into a helpless Yann Sommer's net.
Spain seemed comfortable enough for the most part, but it was Switzerland who found the next goal to equalise after 68 minutes. An awful defensive mix up between Aymeric Laporte and Pau Torres allowed Remo Freuler to collect the ball and lay it off for Xherdan Shaqiri to neatly sweep into Unai Simon's bottom corner.
Switzerland resumed play with their tails up, although things took a turn when Freuler was sent for an early shower. Referee Michael Oliver showed no hesitation in giving the midfielder a straight red card following a late challenge on Gerard Moreno and a quick VAR check did nothing to aid his pleas to stay on the pitch.
Spain were not able to take advantage of their man advantage before the end of regular time, however, sending the tie into extra time. La Roja dominated the goal-scoring opportunities in the extra period but failed to find a way past a resilient and spirited Swiss side.
That meant penalties, and after a string of misses from both sides, it was Mikel Oyarzabal who stepped forward to send his country through to the semi-finals of Euro 2020.
Here's how both sides rated...
Switzerland player ratings
1. Goalkeeper & Defenders
Yann Sommer (GK) - 8/10 - Had no chance with the opening goal and, apart from his distribution, looked composed and solid between the sticks - notably making stunning saves from Moreno and Oyarzabal in extra time. Produced yet more saves in the shoot-out but they weren't enough.
Silvan Widmer (RB) - 5/10 - Playing in a four forced him infield, allowing Olmo and Alba plenty of space on the flank. Struggled to contain their threat.
Nico Elvedi (CB) - 8/10 - Alive to the danger from incoming balls and always positioned himself very well, racking up a whopping 18 defensive interventions. Colossal.
Manuel Akanji (CB) - 6/10 - Stayed tight to his opposition and marked well, although he sometimes allowed space in dangerous areas. Provided a threat from set pieces but passed up a couple of presentable opportunities. Missed Switzerland's third spot kick.
Ricardo Rodriguez (LB) - 8/10 - Was very competent in his defensive duties against bright Spanish wingers. Always keen to get his foot in first and won the ball back 11 times. Put his body on the line and made an unbelievable block in front of goal in extra time.
2. Wing-backs & Midfielders
Breel Embolo (RM) - 6/10 - Started brightly, pressing hard to cause trouble among the Spanish defence but was unfortunately forced off after 20 minutes through injury.
Denis Zakaria (CM) - 6/10 - Showed some excellent bursts of energy to drive upfield, although didn't inject that dynamism often enough. Defended well, making six ball recoveries and was really unlucky to have an own goal awarded against him.
Remo Freuler (CM) - 6/10 - Maintained a deep position in an attempt to screen his two central defenders. Produced some nice moments to release play and keep his side ticking along in a progressive way and was consistent defensively, positioning himself well to make four ball recoveries. Managed the assist for Shaqiri's goal courtesy of energetic pressing but ruined his performance by getting sent off.
Steven Zuber (LM) - 6/10 - Always a willing runner and did well to pick and choose when to surge upfield, either to press his opposition or chase hopeful through balls. Helped stifle Spain's right-hand side to decent effect but had very limited impact at the other end.
Xherdan Shaqiri (CF) - 7/10 - Occasionally found pockets of space and was bright with his attempts to find runners in behind, making three key passes. Finished nicely to get his side back on level terms.
Haris Seferovic (ST) - 5/10 - Positioned himself well in the box, constantly looking to find opportunity but very rarely got service. Maybe should have done more to physically impose himself on Pau Torres and provide an outlet for his side.
Ruben Vargas (RM) - 5/10 - Gave glimpses of his sharp attacking play and produced one key pass, but was quickly closed down in advanced areas - missed the vital penalty for his side.
Djibril Sow (CM) - 6/10
Mario Gavranovic (ST) - 6/10 - Slammed home his penalty with confidence but his teammates could not replicate this time around.
Christian Fassnacht (LM) - 6/10
Fabian Schar (CB) - 4/10 - Missed his spot kick with a tame effort to Simon's right hand.
Kevin Mbabu (RB) - N/A
Spain player ratings
5. Goalkeeper & Defenders
Unai Simon (GK) - 8/10 - A few shaky moments - particularly with the ball at his feet - but no comical own goal this time. Couldn't do anything about the Swiss goal and actually made a crucial save before it. Came to the fore in the shoot-out as Switzerland missed their second, third and fourth penalties.
Cesar Azpilicueta (RB) - 7/10 - Remained calm and collected at the back, showing his experience and doing his job with minimal fuss.
Aymeric Laporte (CB) - 6/10 - Always looked forward and distributed the ball nicely. Also aware to runners in behind, covering to see out danger on several occasions. Was sloppy in the mix up that led to Switzerland's goal.
Pau Torres (CB) - 5/10 - Calm enough defensively but was so uncomfortable under pressure, losing the ball cheaply and weakly several times. Unfortunate in the build up to Shaqiri's strike, but it just showed his side's fragility.
Jordi Alba (LB) - 8/10 - Always alert to track back while also getting up the left to make his presence count, putting in some very tasty crosses. Should have been awarded the goal early on but, in any case, his clean strike forced the opener.
Sergio Busquets (DM) - 6/10 - At times looked leggy but was as assured as ever with the ball at his feet. Constantly picked clever and progressive passes to recycle the ball and keep his side ticking along.
Koke (CM) - 7/10 - An occasional threat with late runs into the box and showed good creativity with four key passes, but his main impact came from set pieces. Delivered some real quality from corners, notably one that led to the breakthrough.
Pedri (CM) - 8/10 - Influential in most good things his side did, making five key passes and demonstrating his vision and movement. Worked tirelessly to make seven ball recoveries while also playing brilliant balls to drive his side upfield and open the game up.
Ferran Torres (RW) - 7/10 - Caused trouble with his pace, direct running and delivery. A nuisance with his desire to get in behind and the quality he produced with the ball at his feet.
Alvaro Morata (ST) - 6/10 - Key in shifting players around once more. Dropped deep to link play well, taking Akanji out position constantly and creating space. Spain occasionally missed a simple runner into the box to take advantage some delicious deliveries, though.
Pablo Sarabia (LW) - 5/10 - Hugged the touchline again, helping to spread the Swiss as far as possible. Enjoyed space on the left, but failed to make use of it that much and was hooked off at the break.
Dani Olmo (LW) - 7/10 - Introduced a spark and caused panic with his untraceable movement and creative edge, managing four key passes.
Gerard Moreno (ST) - 4/10 - Somehow put Alba's pin-point cross wide of the post from a couple of yards out before failing to beat Sommer from close range in extra time. Wasted numerous opportunities after coming on.
Marcos Llorente (CM) - 7/10
Mikel Oyarzabal (RW) - 7/10 - Scored the crucial penalty to send his side through t the last four.
Thiago (CM) - 6/10
Rodri (CM) - 4/10 - Brought on for the penalty shoot-out, and missed.