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 7 July.
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.
The Czechs had progressed from England’s group as one of the best third-placed teams and then pulled off a shock victory against 10-man Holland in the last 16.
But Jaroslav Silhavy’s men were unsettled by going behind so early and Mikkel Damsgaard almost celebrated his 21st birthday with a goal when breaking into the penalty area and taking the ball around the goalkeeper, but his effort was cleared off the line.
The Czechs finally threatened at the other end when Petr Sevcik’s shot flew over before Delaney almost added a second after another Denmark break down the right saw his scuffed shot drop wide.
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.
A deep free-kick from Sevcik dropped just out of reach of defender Ondrej Celustka’s head as he ghosted in at the far post before a volley from Holes flew straight at Schmeichel.
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.
Denmark coach Hjulmand also opted for a double substitution on the hour, with Dolberg replaced by Yussuf Poulsen and Brentford’s Christian Norgaard coming on for Mikkel Damsgaard.
There was another hold-up in play when West Ham midfielder Tomas Soucek needed treatment for a head wound above his ear after accidentally being caught by Poulsen’s boot.
Poulsen’s low, 25-yard shot following a break was saved by Tomas Vaclik, who then beat away a rising drive from the Denmark substitute before sticking out a boot to deny Maehle at the near post.
Denmark saw out six minutes of added time to book their place in the semi-finals.