They were not always on top in this game though, with Spain the better side for long spells of an epic contest before Federico Chiesa, the Juventus forward, gave Italy the lead with a fabulous finish an hour into a match watched by a crowd of almost 58,000.
The much-maligned Alvaro Morata, who was dropped from the starting line-up here, came off the bench to equalise with 10 minutes of normal time left.
No further scoring in extra time meant penalties again for Spain, who had beaten Switzerland in a shoot-out in the quarter-finals.
They had also beaten Italy on penalties at Euro 2008, but this time misses from Dani Olmo and then Morata saw Spain give up the advantage they had been handed when Manuel Locatelli failed with the first kick in the shoot-out.
The Italians celebrated at the end with a large contingent of their UK-based supporters, and a team that has been rejuvenated under Roberto Mancini continues to dream of winning a first European Championship title since 1968.
Now unbeaten in 33 games, they go through to Sunday’s final to face either England or Denmark, who meet in Wednesday’s second last-four tie.
It is nine years since Spain mauled Italy 4-0 in the Euro 2012 final in Kiev to win a third consecutive major tournament, and this was the fourth consecutive European Championship in which these powerhouses had met.
This time they did so in the chill of a damp July evening in London, but the atmosphere at Wembley was anything but a damp squib.
Both coaches had spoken on the eve of this semi-final of their disappointment that there would be no travelling supporters, given the obligatory quarantine for all visitors to the United Kingdom.
However, they were not counting on the large Spanish and Italian communities already in Britain, and a combined 20,000 fans of the two teams were in the 57,811-crowd allowed inside Wembley.
They added a noise and colour so sadly lacking at major sporting events since the pandemic began, and that provided the perfect stage.
The football itself was absorbing and of the very highest quality, particularly in midfield where Italy’s outstanding trio of Jorginho, Marco Verratti and Nicolo Barella met their match in Spain’s Sergio Busquets, Koke and Pedri.
The latter, just 18, is a frightening talent and his touch and calmness on the ball indicate he will be Spain’s leader for many years to come.
What the game lacked in the first half was drama in front of goal, although Italy’s Gianluigi Donnarumma made one crucial save to deny Dani Olmo in the 25th minute.
Italy missed Leonardo Spinazzola, their outstanding left-back who suffered a torn Achilles tendon against Belgium in the quarter-finals.
Meanwhile Spain coach Luis Enrique dropped Morata and selected Mikel Oyarzabal to start on their right flank up front.
Spain had enjoyed the better of the game but Italy went ahead on the hour thanks to a goal of the highest quality.
A move that started with Donnarumma’s throw out saw Lorenzo Insigne play Ciro Immobile in behind.
Immobile was thwarted by Aymeric Laporte’s tackle but the ball fell to Chiesa and he picked his spot in the far corner of Unai Simon’s goal on his right foot.
The Italian fans, gathered en masse at that end of Wembley, erupted in celebration.
Spain reacted by sending on Morata and Gerard Moreno, and just as Italy looked to be seeing out the victory, Morata was the man who got the leveller.
After collecting the ball midway inside the opposition half, Morata played a one-two with Olmo as he cut through the defence and slotted in.
It was a deserved equaliser, and Spain had a spring in their step going into extra time, but they could not take that into the decisive shoot-out.