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 their Nations League semifinal on Wednesday.
Spain will face the winners of Thursday's other semifinal between France and Belgium, in Sunday's decider.
- Stream a replay of Italy vs. Spain on ESPN+ (U.S. only)
Torres put Spain ahead in the 17th minute, steering a left-wing cross from Mikel Oyarzabal into the far corner past Italy keeper Gianluigi Donnarumma.
Roberto Mancini's side, who beat Spain on penalties in the Euro 2020 semifinal in July, found themselves down to 10 men in the 42nd minute when Leonardo Bonucci was sent off for a second yellow card after elbowing Sergio Busquets.
"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."
Torres then sent Luis Enrique's side in with a two-goal lead at the break when he was left unattended to head in another fine cross from Oyarzabal.
Italy ensured a tense end to a quality match when they pulled a goal back, seven minutes from the end, as Enrico Chiesa took advantage of hesitant Spanish defending, broke from the halfway line to the box and then slipped the ball to substitute Lorenzo Pellegrini to convert.
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.
Spain coach Luis Enrique said of Gavi, who became the youngest player to star for Spain at 17 years and 62 days: "He is playing like if he was in a school yard. it's a pure joy to watch a player with that type of character. "He is the future of the national team but also the present.
"It's been a very good game. We both proposed our football. We generated danger and we put pressure on them just as they did on us as you expect from the European champions. I'm very happy. We had one and a half training sessions, so I'm delighted. We were brave and had the right attitude. I'm privileged because I have 50 players."
The Azzurri, who beat Spain on penalties in the Euro 2020 semifinal in July, went a man down in the 42nd minute when Bonucci was sent off for a second yellow card after elbowing Sergio Busquets.
For Spain though, the revenge for the Wembley loss was sweet.
"We knew it was a special game, we went out in the semifinals of the Euros and what better way to beat them at home in other semifinals," Torres said.