Italy were deserved winners after producing a confident display to beat Belgium 2-1 in a tense Euro 2020 quarter-final in Munich.
Nicolo Barella's opener and Lorenzo Insigne's stunning strike opened up a two-goal lead before Romelu Lukaku equalised before half-time in a thrilling contest.
Lukaku did come close to an equaliser and with Kevin De Bruyne on the pitch, Belgium were always a danger to Roberto Mancini's side but the second goal just would not come.
Italy can look forward to a semi-final showdown with Spain at Wembley, while Belgium are left to wonder whether the moment has passed for the so-called golden generation.
How it happened
Lukaku had given an early warning of his threat in the opening moments but it was Italy who looked to have taken the lead through Leonardo Bonucci only for VAR to deny him.
The defender diverted the ball into the net at the far post and celebrated wildly but replays showed there had been a touch from Giovanni Di Lorenzo causing him to be offside.
Italy were the more fluid team but De Bruyne soon offered a reminder of the threat - his left-footed shot drawing a sensational save from Gianluigi Donnarumma.
The goalkeeper's right hand was forced into action again when Lukaku attempted to measure a finish into the corner but Donnarumma was up to the challenge once more.
- Martinez coy on Belgium future: It's too raw
- How the teams lined up | Match stats
- Belgium 1-2 Italy - Stats companion
Those saves proved even more significant when Italy punished Belgium at the other end with a goal that rewarded their enterprising movement in the final third of the pitch.
Marco Verratti fed the ball to Barella inside the area and the Inter midfielder wriggled free of two defenders before lashing the ball into the far corner of Thibaut Courtois' net.
Italy continued to push and doubled their advantage just before half-time thanks to a wonderful finish from the brilliant Insigne as he whipped the ball into the top corner.
Kevin De Bruyne recovered from the injury that saw him substituted against Portugal so there was only one change to the team from the previous game as the injured Eden Hazard was surprisingly replaced by teenager Jeremy Doku rather than Yannick Carrasco.
Italy welcomed back captain Giorgio Chiellini at the heart of the defence after missing two games with a thigh injury. The in-form Federico Chiesa replaced Domenico Berardi in attack, while there was once again no place for Manuel Locatelli in midfield.
Things looked bleak for the world's top-ranked team at that stage but teenager Jeremy Doku - a surprise replacement for the injured Eden Hazard - immediately won a penalty.
The push from Di Lorenzo had been minimal but Doku's direct play won it and Lukaku duly converted the spot-kick to halve Italy's lead and give Belgium hope going into the break.
The pattern continued in the second half with Italy playing the brighter football but Belgium threatening on the counter-attack and Lukaku, chasing his fifth goal of the tournament, came close to an equaliser on the half-hour mark.
The impressive Doku threaded a pass through to De Bruyne and his low cross found the forward at the far post only for his mishit effort to be blocked by Leonardo Spinazzola near the goal line.
Belgium tried to build some momentum in the closing stages but Italy were able to disrupt their rhythm with a series of substitutions - including to the injured, and heartbroken, Spinazzola.
De Bruyne and the rest became increasingly frustrated themselves as tournament elimination loomed - and the knowledge that this group of players' best chances of glory may be behind them.
For Italy, there are bigger challenges ahead.
What the managers said...
Belgium head coach Roberto Martinez: "The feelings are what you can imagine, really - sadness and disappointment - because I do not think these players deserve to be out of this tournament.
"They have done an incredible job to be prepared to be ready to go step-by-step every day, from the beginning of the tournament. And unfortunately, today (Friday), we faced a very good side (Italy). I thought it was two very good teams in this knockout phase. And, unfortunately, the margins did not go in our favour."
Italy head coach Roberto Mancini: "I don't think we suffered too much in any moment of the game. To beat a team like Belgium you need a great performance by everybody and this is exactly what happened today.
"We scored two and we could have scored more. I think the victory is fully deserved. Spain are next but the more you go forward the most difficult it becomes. Tonight, however, we just want to think about our performance and our victory."
- Italy have reached the semi-finals of a major tournament (World Cup/EUROs) for the 12th time - the only European nation to do so more is Germany (20 times). They have progressed from each of their last four such semi-finals.
- Italy have extended their longest ever unbeaten run to 32 games (W27 D5), winning each of the last 13 in a row.
- Belgium have faced Italy more times at major international tournaments (World Cup/EUROs) without winning than any other side (5), while Italy have only faced Germany (9) more often at the same tournaments without losing.
- Italy coach Roberto Mancini became only the second coach in European Championship history to win each of his first five matches in the competition finals after Michel Hidalgo, who won all five of his matches in charge of France at the 1984 edition.
- Including the qualifying rounds, Italy have won each of their last 15 European Championship matches, a competition record. Belgium themselves had won 14 consecutive such matches before today's defeat.
Italy will play Spain in the semi-finals of Euro 2020 at Wembley on Tuesday 6 July.