Keeper Danijel Subasic came to Luka Modric's rescue as Croatia eased past Denmark into a World Cup quarter-final clash with hosts Russia after a dramatic penalty shoot-out.
Modric had squandered a chance to win the game from the spot in extra-time when Kasper Schmeichel repelled his effort, but Subasic saved from Christian Eriksen, Lasse Schone and Nicolai Jorgensen to allow Ivan Rakitic to win it with his side's final kick in the shoot-out.
Most of the earlier fireworks in Nizhny Novgorod had arrived inside the opening four minutes, during which defender Mathias Jorgensen fired Denmark into the lead before Mario Mandzukic levelled.
The Danes enjoyed the better of the 120 minutes, but were unable to find a winner and were ultimately made to pay in the cruellest way.
They needed less than a minute to get their noses in front when the Croatian defence failed to deal with Jonas Knudsen's long throw.
Thomas Delaney managed to get the ball under control at the far post, but it was defender Jorgensen who thumped a low shot past Subasic to open the scoring.
However, their joy was short-lived as Zlatko Dalic's men restored parity within three minutes when, after defender Simon Kjaer's clearance had ricocheted back off team-mate Andreas Christensen, the ball fell nicely for Mandzukic to blast home the equaliser.
Mario Mandzukic capitalises from a very fortunate/unfortunate ricochet in Danish area and we are level. Danish lead lasted all of 90 seconds #CRO 1-1 #DEN #RTEsoccer #WorldCuphttps://t.co/5rbws7Qujj pic.twitter.com/KMttAoMcU8— RTÉ Soccer (@RTEsoccer) July 1, 2018
After a frantic start, the game began to settle down, although Denmark struggled to get star man Eriksen on the ball and Croatia, despite prospering in wide positions with Ivan Perisic prominent, were unable to find a telling final ball.
Eriksen was heavily involved as striker Martin Braithwaite burst into the box and saw his stabbed effort blocked by Subasic with 27 minutes gone.
But it was opposite number Schmeichel who was called upon twice within seconds to repel efforts from Rakitic and Ante Rebic.
Subasic found himself back-pedalling anxiously three minutes before the break with Eriksen's speculative effort dipping alarmingly towards his goal, but the ball clipped the angle of bar and post, much to the keeper's relief.
As the Danes grew in confidence, they started to make the running after the break and coach Age Hareide sent on target-man Nicolai Jorgensen for Andreas Cornelius with 24 minutes remaining in the search for a winner.
Jorgensen's chance arrived within six minutes when Poulsen cut inside from the right and found him, but the striker's first-time shot flew straight at Subasic.
Rakitic fired a yard wide in stoppage time and Braithwaite side-footed a volley past the post at the other end seconds later, but neither side could find the breakthrough as the 90 minutes drew to a close.
With six minutes remaining Modric split the Danish defence with a superb pass and Mathias Jorgensen brought Rebic down after he had rounded Schmeichel, only for the former Tottenham midfielder then to fluff his lines when the keeper kept out his spot-kick.
But in the shoot-out, Subasic saved from Eriksen and Schone as Schmeichel repelled the efforts of Milan Badelj and Josip Pivaric, but after the Croatia keeper had denied Nicolai Jorgensen, Rakitic sent the Leicester keeper the wrong to way to seal a nail-biting win.