Ivan Rakitic scored the winning penalty to spare Croatian blushes after Luka Modric had a spot-kick saved late in extra time, reaching the World Cup quarter-finals via the shoot-out following a 1-1 draw against Denmark.
After saving from Modric, Denmark goalkeeper Kasper Schmeichel produced two saves in the shoot-out but saw opposite number Danijel Subasic keep out three, including from Nicolai Jorgensen to set up Rakitic to seal the 3-2 win.
In a tournament packed with excitement this was no classic, although it looked set to be a thriller after Mathias Jorgensen and Mario Mandzukic scored at either end within the first four minutes.
There was an air of expectation that Croatia's 'golden generation' of players, including Modric, Rakitic and Ivan Perisic, would rise to the occasion but there was little urgency, spark or flair about Zlatko Dalic's team after the early action.
Croatia nevertheless booked their place in the last eight alongside Russia, who they will play in Sochi on Saturday, and they will need to find a more incisive cutting edge in attack if they are to break down Stanislav Cherchesov's resilient defence.
Denmark head coach Age Hareide may feel hard done by after his players showed more intent to win the game in normal time, but Feyenoord striker Jorgensen cracked at the vital moment before Rakitic sent them home.
The game exploded into life in the first minute when a long throw into the Croatia penalty area by Jonas Knudsen was allowed to run to Thomas Delaney and he touched the ball on to Mathias Jorgensen, who side-footed it into the net via deflections off goalkeeper Subasic and the post.
The Danes led for just three minutes before Sime Vrsaljko's ball into their box reached Henrik Dalsgaard, whose clearance hit Andreas Christensen in the face and presented Mandzukic with an easy finish, the Juventus striker tucking the ball between Schmeichel and the near post with a shot on the turn from six yards.
Denmark recovered their composure and gave Croatia a scare when their crisp midfield passing crafted an opening for Martin Braithwaite, but the Middlesbrough forward had his low shot saved by Subasic.
Schmeichel was called into action to save Rakitic's long-range drive but Croatia struggled to get into their stride as they had done in their group matches and the 1-1 half-time scoreline was a fair reflection of the play.
Openings were harder to come by for both sides after the interval as the game took on a more cautious feel with fewer risks taken at either end of the field.
Hareide sent on Nicolai Jorgensen for Andreas Cornelius to try and force a breakthrough and he went close with a good chance moments later, firing a low shot from the middle of the penalty area, but Subasic was equal to it.
Rakitic flashed a shot narrowly wide from 25 yards shortly before normal time elapsed but it was Denmark who dominated the first period of extra time, Lasse Schone turning skilfully on the edge of the box before hooking a curling shot just wide of Subasic's goal.
Pione Sisto entered the fray in extra time and he looped a shot towards goal from an angle that bounced just past the post while Croatia sat back.
But then Ante Rebic burst clear of the Denmark defence and was felled by Mathias Jorgensen when he was clean through on goal, only for Schmeichel to save Modric's spot-kick by diving down to his left and clutching the ball to his chest.
In the shoot-out, Christian Eriksen got Denmark off to the worst possible start when Subasic tipped his penalty onto the post but Schmeichel saved from Milan Badelj to make amends.
Simon Kjaer rattled his penalty into the top corner to get Denmark back on track before Andrej Kramaric rolled cheekily into the net, and there were successful shots from Michael Krohn-Dehli and Modric before Schone's was saved by Subasic and Josip Pivaric was denied by an acrobatic Schmeichel stop.
But the Leicester City goalkeeper's heroics were in vain after Nicolai Jorgensen took a staggered run-up that did him no favours as Subasic saved with his feet, before Rakitic coolly slotted the ball into the bottom left corner of the net to settle a tense contest.
Key Opta stats:
- Croatia have qualified for their first World Cup quarter-final since 1998.
- Denmark have lost two of their three penalty shootouts at major tournaments, also losing against Spain in the Euro 1984 semi-final (won the other at Euro 1992 against Netherlands).
- This match was only the second in World Cup history to see both teams score inside four minutes, after Argentina v Nigeria in June 2014.
- Mathias Jorgensen scored for Denmark after 57 seconds, the fastest goal scored in a World Cup match since Clint Dempsey scored after 29 seconds for USA against Ghana in 2014.
- Mario Mandzukic’s equaliser for Croatia after 3 minutes and 40 seconds was Croatia’s second fastest World Cup goal, behind only Darijo Srna’s goal against Australia in June 2006 (1:56).
- Today is only the second day in which two World Cup games (Spain v Russia, Croatia v Denmark) both went to a penalty shootout – the other was June 21, 1986 (France v Brazil, Mexico v Germany).