Italy booked their spot in the semi-finals of the 2020 European Championship after edging Belgium 2-1 on Friday evening.
The Red Devils were without Eden Hazard due to the injury he sustained against Portugal but Kevin De Bruyne was fit to start.
Gli Azzurri thought they were ahead in the 13th minute after Leonardo Bonucci finished off a free-kick by Lorenzo Insigne on the far side but the goal was disallowed for offside by the Video Assistant Referee (VAR).
Belgium had two big chances four minutes apart after the 22nd minute and shot-stopper Gianluigi Donnarumma made two brilliant saves to keep out De Bruyne and Romelu Lukaku's curling strikes.
Roberto Mancini's charges eventually broke the deadlock just after the half-hour mark courtesy of a well drilled strike by Nicolo Barella across goal after a through ball by Marco Verratti, who pounced on a loose ball by Jan Vertonghen.
Insigne doubled Italy's lead on the stroke of half-time with a stunning and curling strike towards the top corner from the edge of the box against the run of play.
Roberto Martinez's men had a lifeline in first-half stoppages after they were awarded a penalty for a push by Leonardo Di Lorenzo on Jeremy Doku towards the byline inside the box and Lukaku fired his spot-kick low in the middle to make it 1-2 going to the break.
Martinez's men had a big chance to snatch the equaliser in the 62nd minute from a counter-attack after a square pass by De Bruyne needed a tap-in at the back post but Lukaku scuffed his shot on the path of Leonardo Spinazzola on the goal-line.
Martinez made a double attacking change in the last 20 minutes, as Dries Mertens replaced Youri Tielemans and Nacer Chadli came on for Thomas Meunier but Chadli had to be replaced by Dennis Praet four minutes later after pulling a muscle
Gli Azzurri defended in numbers in the dying minutes, frustrating Belgium who were desperate for the equaliser as Mancini's men held on setup a meeting with Spain in the semi-finals.
Spain advanced to the semi-finals of EURO 2020 after beating Switzerland 3-1 on penalties at Saint-Petersburg Stadium.
Luis Enrique's charges had a dream start after going ahead in the eighth minute thanks to a volley by Alba from a corner that took a nasty deflection off Zakaria's foot and wrong-footed shot-stopper Yann Sommer.
La Nati suffered an injury blow in the 23rd minute after forward Breel Embolo went down injured and he was replaced by Ruben Vargas.
Vladimir Petkovic's troops were fired up after the break as Zakaria came close to finding the equaliser ten minutes inside the second stanza with a towering header at the back post across goal that missed the far bottom corner slightly wide.
The Swiss were rewarded in the 68th minute after a defensive lapse in concentration led to Laporte guiding his clearance off the body of Torres, which saw Remo Freuler setup Xherdan Shaqiri, who fired a low strike into the bottom corner.
Switzerland were reduced to ten men in the last 13 minutes after Freuler was red-carded for a dangerous sliding challenge on Gerard Moreno.
La Nati defended in numbers in the dying minutes, denying Spain chances behind their defence and La Roja brought on Marcos Llorente in place Koke for fresh legs in midfield, as the sides went to extra-time after a 1-1 draw in regulation time.
Moreno had a big chance in first-half of extra-time after going through inside the box but his close-range volley was acrobatically saved by Sommer.
Enrique's troops kept on pressurising La Nati and Llorente had a wonderful chance to snatch the winner ten minutes before time after a cut-back inside the box but Ricardo Rodriguez made a crucial sliding block.
In a dramatic shoot-out, Spain came out on top, with Oyarzabal scoring the decisive spot-kick to book a spot in the semi-finals.
Scroll through the gallery to see the kits that will be on display at Euro 2020