Denmark beat the Czech Republic 2-1 in Baku to book their place in the semi-final of Euro 2020.
Thomas Delaney headed Denmark into an early lead and Kasper Dolberg also struck shortly before half-time.
Czech frontman Patrik Schick reduced the deficit with his fifth goal of the tournament in the 49th minute, but it was Denmark who progressed to secure a semi-final spot at Wembley on July 7.
Kasper Hjulmand’s squad have have grown in stature during the tournament after their horrific start when Christian Eriksen collapsed with a cardiac arrest in their opening defeat to Finland in Copenhagen.
Denmark got off to the fast start as Borussia Dortmund midfielder Delaney took full advantage of some slack marking to headed home from a corner after just five minutes.
Lukas Masopust found space on the edge of the Denmark box to thread a ball through to Tomas Holes, but goalkeeper Kasper Schmeichel was out quickly to smother his angled shot.
As the half-hour approached, the Czechs were slowly growing into the match.
Denmark, however, doubled their lead shortly before half-time.
Joakim Maehle darted down the left and clipped over a brilliant cross through the penalty area, which was just too far in front of Martin Braithwaite but perfect for Dolberg to score from close range.
Silhavy made two changes for the second half, with Michael Krmencik and Jakub Jankto replacing Holes and Masopust, to inject fresh lift into the team.
Schmeichel parried away a 25-yard effort from Krmencik and then saved Antonin Barak’s effort.
The Czechs’ pressure told, tough, as Schick pulled a goal back in the 49th minute, converting a cross from Vladimir Coufal to take his tournament tally to five.
That was the last big chance of the evening though, as the pair cancelled eachother out, and Denmark wen ton to see out six minutes of added time to book their place in the semi-finals.
Expected Goals analysis: Denmark the real deal
By Jake Osgathorpe
Denmark's story at Euro 2020 is a fairytale one. From the trauma of what occurred in their opening 1-0 defeat against Finland, to the potential title they are just two wins from.
Their 2-1 victory over the Czech Republic wasn't as impressive as their previous performances, narrowly losing the xG battle, but having raced into a 2-0 lead, they showcased their defensive will once again.
In the absence of talisman and captain Christian Eriksen, many thought the Danes would struggle for creativity in attack, but that hasn't been the case at all, with Kasper Hjulmand's side averaging an impressive 2.23 xGF per game.
The likes of Mikkel Damsgaard and Joakim Mæhle have flourished in a change of system, with Mæhle in particular catching the eye, scoring twice and registering a key assist in the quarter-final win - which was a sensational cross.
Defensively they had been sound up until the quarter-final against the Czechs, but the direct approach and consistent crosses seemed to trouble them somewhat, but even in that game they allowed just the one 'big chance'.
That game was the first in which they have allowed over 1.0 xGA in a game at Euro 2020 - even Belgium didn't hit that mark - with the Danes allowing just 0.96 xGA per game through their five matches.
They have booked their place at Wembley on Wednesday in the semi-final, and they won't fear either England or Ukraine, and they shouldn't.
Denmark have shown enough throughout the tournament to show that they are more than capable of winning the whole thing, and as well as the underlying numbers being on their side, perhaps the footballing gods are too.
The nation who rote the most fairytale of stories in 1992 when winning the Euros having failed to qualify, could be set to add another dream ending to what started off as a nightmare.