After Alvaro Morata’s penalty was saved, Jorginho strolled up to score and set up a final with either England or Denmark in London on Sunday.
Federico Chiesa looked as if he had sent Italy – who are unbeaten in 33 games – to the final in normal time with a delightful curled finish to cap off a quick counter.
But Morata stepped off the bench to slot an equaliser with 10 minutes to go after a one-two with Dani Olmo.
However, the Juventus forward’s penalty miss in the shootout proved costly as Spain lost a semi-final for the first time in their history.
Fears about an empty stadium or quiet crowd proved unfounded despite tickets still being on sale during the day, and with fans unable to fly from either country without having to quarantine for too long to watch the game.
Roberto Mancini’s Italy side have been arguably the best team in the tournament – and had won their previous 13 games – and deserve their place in the final.
However, this was the toughest they have had to work, and they only managed one shot between Morata’s equaliser and the shootout.
It is an especially sad end to the tournament for Morata. He has wasted numerous chances during the tournament – with his family having to endure threats from fans – and his equaliser looked set to change the narrative before he failed from the spot.