Spain ended European champions Italy's world record 37-match unbeaten run as Ferran Torres scored twice in a 2-1 win at the San Siro stadium in an entertaining Nations League semi-final on Wednesday.
Italy, trailing by two goals at the break, had to play the entire second half with 10 men after captain Leonardo Bonucci was sent off but showed real determination as they sought to avoid their first loss since a September, 2018 defeat by Portugal.
"This what matches are like, sometimes certain episodes can influence them," Italy coach Roberto Mancini said.
"This is a disappointment. We should have stayed with 11 men, we made a mistake that you can’t make at this level," he added.
Spain will face the winners of Thursday's semi-final between France and Belgium in Sunday's decider.
Torres put Spain ahead in the 17th minute, steering a left-wing cross from Mikel Oyarzabal past Italy keeper Gianluigi Donnarumma into the far corner.
Donnarumma, booed by AC Milan fans angered at his recent move from the club to Paris St Germain, nearly gifted Spain a second when he fumbled a harmless Marcos Alonso effort against the post but Bonucci scrambled the ball clear.
Any lingering questions about the importance of the match had been blown away by the blistering start and it was by no means one-way traffic, as Italy started to open up the Spanish defence.
Federico Bernardeschi went close to an equaliser with a low drive from the right which Spain keeper Unai Simon pushed against the post and Lorenzo Insigne missed a great chance, firing wide when in space on the edge of the box.
The Azzurri, who beat Spain on penalties in the Euro 2020 semi-final in July, went a man down in the 42nd minute when Bonucci was sent off for a second yellow card after elbowing Sergio Busquets.
Torres sent Luis Enrique's side in with a two-goal lead at the break when he was left unmarked to head in another fine cross from Oyarzabal.
Italy brought on Giorgio Chiellini at the break, the veteran defender and leader having been a surprise omission, and despite Spain playing with real swagger, the Azzurri stayed in the game.
Spain had given a debut to Barcelona's 17 year-old midfielder Gavi, who became their youngest ever player after just three starts for his club -- but there was no hint of his inexperience in a confident and composed performance.
Enrico Chiesa was the source of Italy's brightest moments and he hit the post from a tight angle in the 61st minute
Oyarzabal headed wide after excellent work from another teenager, winger Yeremi Pino, and Marcos Alonso should have sealed the win in the 78th minute but his low shot was well saved by Donnarumma.
Italy ensured a tense end to a quality match when they pulled a goal back seven minutes from the end, as Chiesa took advantage of hesitant Spanish defending, broke from the halfway line and slipped the ball to substitute Lorenzo Pellegrini to convert.
But Italy's run was over and with it ended the dream of a Nations League title on home soil to follow their Euro triumph.
For Spain though, the revenge for the Wembley loss was sweet.
"We knew it was a special game, we went out in the semi-finals of the Euros and what better way to beat them at home in other semi-finals," Torres said.
Mbappe clears the air with Neymar
Ronaldo should have started against Everton: Ferguson
Chhetri scores 76th goal but Bangladesh hold India
PIX: Manchester City rally twice to hold Liverpool
Soccer legend Pele undergoing chemotherapy