Italy set up a Euro 2020 semi-final match with Spain after edging an exhilarating tie with a 2-1 win against Belgium in Munich.
The game may not have been a goal feast like some of the last-16 ties but it was an intense battle between two excellent teams playing fantastic football.
Italy have been arguably the best team at the tournament so far, while Belgium are the world’s top-ranked team.
The Azzurri’s two goals – which took the team up to 13 consecutive wins and 32 games without defeat – were of the highest quality.
Nicolo Barella wriggled through three defenders before drilling in the opener and Lorenzo Insigne ran from the halfway line before curling in one of the goals of the tournament.
Belgium were given hope late in the first half when Giovanni di Lorenzo fouled Jeremy Doku and Romelu Lukaku scored the penalty.
Both sides had chances to score again in a breathless second half but with no goals it was the Azzurri who progressed.
Roberto Mancini’s side face Spain at Wembley on Tuesday but they may have to do so without impressive left-back Leonardo Spinazzola, who went off on a stretcher late on.
Italy cruised through their group with three wins – without conceding a goal – but all those were at home in Rome.
But they were nowhere near as impressive in the last-16 tie against Austria at Wembley, needing extra time to win 2-1.
This result in Germany, however, was probably the best of their near-three-year unbeaten run – and the most important too.
It was a breathless start and Leonardo Bonucci bundled in early on – but the goal was disallowed by the video assistant referee for offside.
Gianluigi Donnarumma made a couple of good saves to keep them level before Insigne cut inside and curled just wide – just a sighter for things to come.
Their opener came as Belgium tried to play their way out of defence and Marco Verratti found Barella, who fired home after some lovely footwork.
Insigne then scored a stunning strike to make it 2-0 as he picked the ball up in midfield and cut inside before curling home from outside the box.
They looked comfortable at that stage but then Di Lorenzo needlessly fouled Doku and Lukaku gave Belgium hope.
Mancini’s side had chances after the break – although not as many as Belgium – with Spinazzola, Federico Chiesa and Insigne all going close.
The moment that summed up their day – and Italian football in general – arrived when Spinazzola blocked a Lukaku shot and Bonucci and captain Giorgio Chiellini, back from injury, celebrated with him as if it was the winner.
In truth it was as good as a winner because they never let that lead slip.
They must now be considered favourites against a less-than-impressive Spain in London next week.
Meanwhile, the three-time champions Spain survived another scare to beat 10-man Switzerland in a dramatic penalty shootout to reach the semi-finals.
Swiss substitute Ruben Vargas was in tears at full-time after he blasted his penalty over the bar, allowing Mikel Oyarzabal to score the decider for Spain.
Spain, ranked sixth in the world, also needed extra time to defeat Croatia in the last 16 despite leading 3-1 with five minutes of normal time to play.
They were in front in St Petersburg against Switzerland too – midfielder Denis Zakaria deflected Jordi Alba’s shot into his own net to give Spain an early lead.
Swiss captain Xherdan Shaqiri equalised following a mistake at the back by Spain but team-mate Remo Freuler was sent off nine minutes later.
They held on to force extra time and a shootout but missed three spot kicks which ultimately proved costly.
When Alba’s shot deflected in to put Spain 1-0 up in the eighth minute, there were hopeful signs for Luis Enrique’s side.
They had chances to extend their lead with Cesar Azpilicueta and Pau Torres both nodding wide from corners.
But Spain’s lack of ruthlessness in front of goal almost came back to bite them when Zakaria, earlier at fault for the own goal, came close with a header himself, while Steven Zuber was denied from close range.
Eventually it was a mistake at the back from Spain which gave Switzerland a lifeline. A mix-up between Aymeric Laporte and Pau Torres was pounced on by Freuler and he teed up Shaqiri, who could not miss.
But Freuler’s heroics were short-lived when he came sliding in late on Gerard Moreno and English referee Michael Oliver did not hesitate to show a straight red card.
Switzerland were clinging on for the remaining 13 minutes and defended bravely in extra time – Ricardo Rodriguez produced an excellent block to deny Marcos Llorente.
Moreno had the best chance two minutes into the added time when he fired wide from a few yards out and kicked the post in frustration.
Source: BBC