Spain defeated Croatia 5-3 in a thrilling last-16 encounter to qualify for their first European Championship quarter-final since 2012.
Spain started brightly and nearly took the lead in the 16th minute after Koke found himself in a one-on-one situation in the penalty area. However, he could only fire his shot directly at the Croatian goalkeeper, Dominik Livakovic.
Two minutes later, they were back on the attack when Ferran Torres whipped a ball into the box, which was met by Alvaro Morata. His header was poor, but there was an element of handball with the block.
Croatia had barely got going, but took the lead in the 20th minute through an absolute howler from the Spanish keeper, Unai Simon. He failed to deal with a back pass from the halfway line, letting the ball go over his foot and settle in the back of the net. He hadn't had much to do and it was a classic case of a lack of concentration. It was chalked down as a Pedri own goal.
The goal galvanised Croatia, who became much more attacking focused. Nikola Vlasic had a chance which he blasted into the side netting from a tight angle, while two minutes later, Mateo Kovacic had an attempt that sailed just over the crossbar.
Spain were struggling to reassert themselves in the game, but they equalised in the 38th minute through Pablo Sarabia, who scored from 10 yards out after the Croatian keeper palmed a shot towards him. There was a bit of luck though, with the shot deflected into the back of the net.
Luis Enrique's men started the second half brightly and took the lead in the 57th minute through a well-worked goal. Torres crossed the ball into the box from the left and Cesar Azpilicueta climbed highest to nod the ball past Livakovic. There was great work from Morata too, taking the goalkeeper and some defenders out of the equation.
Halfway through the second half, it looked like Spain wanted to finish the game off, but Croatia started to come back into the tie with a couple of chances. The best was in the 67th minute when Josko Gvardiol struck from around 10 yards out, forcing a great save out of Simon, who had to get down quickly to block.
Spain had the ball in the back of the net in the 72nd minute too, but it was rightly chalked off for offside. However, they didn't need to wait long for their third as Torres latched onto a long ball and fired a shot past Livakovic from eight yards out.
Croatia gave themselves a lifeline in the 85th minute as the ball pinged around the box. The Spanish defence struggled to clear, allowing Mislav Orsic to scramble the ball home from close range to reduce the deficit to just one goal. With five minutes to go, it was game on.
The momentum was all with Croatia heading into stoppage time, so it came as no surprise when they popped up with an equaliser. The ball was whipped into the box from the left and Mario Pasalic nodded past Simon to make it 3-3.
This took the game into extra time and Spain started the brighter of the two sides. They retook the lead in the 100th minute when Morata brought down a ball from the right and lashed it beyond the Croatian goalkeeper.
Spain restored their two-goal advantage two minutes later when Mikel Oyarzabal held off two Croatian players to defeat Livakovic.
Entering the second half of extra time, Croatia needed two goals and almost scored from the whistle, with Ante Budimir's shot shaving the paint off the outside post.
However, this was the last opportunity for Croatia, as the Spaniards took control of the game from here on in. Four minutes from time, Morata found himself free inside the box and forced a great save from Livakovic. They also hit the post towards the final whistle, holding on to qualify for the last-eight.
Stat of the day
What's next for Spain?
Spain will face Switzerland in the opening quarter-final of Euro 2020, which takes place at 17:00 BST in St Petersburg on Friday, July 2.