Patrik Schick responded for the Czechs early in the second half to score his fifth goal of the tournament and become the joint-top scorer with Portugal’s Cristiano Ronaldo.
However, Denmark stood firm to book their place in Wednesday’s semi-final, where they will face either England or Ukraine.
The result avenged Denmark’s 3-0 defeat by the Czechs in the last eight of Euro 2004 and meant they reached the semi-finals for the third time, taking them closer yet to adding to their unlikely triumph at Euro ’92.
Denmark got off to a flying start when Delaney took advantage of slack marking from a corner to head home in the fifth minute, although replays showed the corner should never have been given as the ball had come off a Danish player when it went out.
The Czechs struggled to respond and Denmark missed several chances to double their lead, with Mikkel Damsgaard, Delaney and Martin Braithwaite all spurning decent opportunities.
They eventually scored again at the end of the first half when left back Joakim Maehle delivered an inviting cross with the outside of his right foot which Dolberg side-footed in on the volley, adding to his double in the 4-0 win over Wales.
Denmark had ridden the wave of a raucous home crowd in their three group games in Copenhagen and also enjoyed strong support against Wales in the last 16 in Amsterdam, capturing the hearts of many neutrals after Christian Eriksen suffered a cardiac arrest in their opening game with Finland.
Even though there was a sizeable and noisy Danish contingent in Baku there was a less of a festive mood than in previous games as the players were separated by an atmosphere-sapping running track and sparse crowd in Azerbaijan, where locals have been largely less than enthusiastic about the tournament.
After a poor first half, the Czechs made a double change which instantly gave them more purpose in attack and one of their substitutes Michael Krmencik forced Kasper Schmeichel into a save immediately while moments later Antonin Barak made the keeper make a full-stretch save.
The goal soon followed, Schick meeting a Vladimir Coufal cross first time to beat Schmeichel and match Milan Baros’ five goals for the Czech Republic at Euro 2004.
But they failed to build on the momentum and Denmark woke up and defended well for the remainder of the half, ending the Czech Republic’s hopes of reaching a first Euros semi-final since 2004 and a first final since 1996.
They should have put the game to bed as substitute Yussuf Poulsen failed to beat Tomas Vaclik and Maehle was also denied by the keeper at point-blank range but their first-half goals proved just enough to see them through, the Czechs coming closest to levelling when a Barak strike flew just wide.