In the end Ireland were not quite good enough to force a twist in a taut but predictable drama. They tried their damnedest but inspiration eluded them and then, in the 73rd minute, so did concentration. Martin Braithwaite stepped in to send Denmark to Euro 2020 with their first shot on target.
Matt Doherty headed an equaliser five minutes from time but the valiant hosts were to fall agonisingly short. Ireland may still reach the finals through play-offs in March. They could meet Bosnia, Wales, Slovakia or Northern Ireland depending on the result of Wales’s match against Hungary on Tuesday.
That four of the past five meetings between these sides had ended in draws had done nothing to shake Denmark out of their conviction that they were obviously superior.
The last visitors to come to Dublin trumpeting such chutzpah were Germany in 2015. Shane Long cut them down to size. There was talk among the Irish of somehow reproducing glorious feats such as that one but nothing in the campaign has suggested anything like it was imminent.
What little optimism there was among locals had, then, a slightly desperate quality, a whiff of the ghost dance. Before kick-off the stadium MC even ran through the hits of the Jack Charlton era.
When Ireland would have to find a way of deviating from expectations, Mick McCarthy sprung a slight surprise with his lineup by including Preston’s Alan Browne on the right of a five-man midfield. That indicated a preference for solidity: perhaps by staying in the game for as long as possible, the Irish could erode Denmark’s confidence sufficiently to provoke a breakthrough.
They made a proactive start, showing a willingness to pass their way forward and to win the ball back quickly when they lost it. Ireland did not make any impression on the Denmark defence in the first 15 minutes but nor was there any trace of Danish supremacy. They, mind you, needed only to draw.
The visitors suffered an early blow when their dangerous midfielder Thomas Delaney appeared to twist his ankle while trying to dispossess Browne. Pierre-Emile Hojbjerg came on in his place.
After that they played as risk-free as possible, controlling possession with moderate attacking intent. Keeping the ball away from Ireland would do for them. There was a dramatic tension to proceedings but meagre action where it mattered.
Denmark lost a second player to injury when Andreas Cornelius limped off just after the half-hour. The striker had not had a shot. Nor had anyone else.
Conor Hourihane was presented with a chance to change that in the 34th minute when he darted on to a pass by David McGoldrick. He tried to guide a side-footer past Kasper Schmeichel from the right of the box but shot too close to the keeper.
Browne worried Schmeichel with a snapshot from distance three minutes later but his effort bounced just wide. McGoldrick then let fly from even further out. His shot whizzed high and wide but with these sights of goal Ireland could at least envisage victory. By half-time Danish minds could not have been doubt-free.
Ireland also had a problem during the interval, as John Egan had to be replaced by Ciaran Clark. His first contribution was to get on the end of a corner in the 48th minute, his header deflected out for another. The next one spread panic in the box, with Schmeichel lucky to scramble the ball away.
Ireland were brewing up a storm but could they summon the precision to translate their blustery menace into an all-important goal?
Doherty and Enda Stevens added to Denmark’s worries by joining in attacks. A burst by Stevens in the 66th minute led to McGoldrick slashing over the bar from 10 yards.
Then came the decisive lapse. From a throw-in on the right Denmark were allowed to work Henrik Dalsgaard into space to pick out a cross from deep.
Braithwaite ran away from Doherty on the blind side of Shane Duffy and poked into the net from close range.
Game over? Not quite. Doherty prolonged hope by heading in a cross by Stevens at the back past. But Denmark clung on.