Mathias Jorgensen gave Denmark the lead after 58 seconds but Mario Mandzukic levelled for Croatia in the fourth minute.
Luka Modric - 6 - The architect in central midfield, Croatia's talismanic playmaker was at the heart of every encouraging move his side produced, but ultimately squandered the definitive chance of the match as his last minute penalty was saved by Schmeichel.
Croatia (4-2-3-1): 23. Danijel Subasic (gk), 2.
Sunday's match got off to an incredible start, and if you were five minutes late, you missed almost everything.
Croatia have great ball players with Modric, Rakitic and Kovacic as well as the robust Mandzukic in attack but it was Rebic who shone and caused plenty of problems for the Denmark defence with his dribbling. But Jorgensen saved what would have surely been a goal, and then his goalkeeper Kasper Schmeichel came to the rescue.
Knudsen's long throw-in falls to Thomas Delaney.More news: Hundreds of marches across America to protest Donald Trump's family separation policy
More news: Trump says he’ll announce Supreme Court pick July 9
More news: 'Scorpion': Drake Raps About His Son
With Denmark staring down the barrel of a World Cup exit, Modric couldn't find a way through.
It wasn't until late on in extra time, and then the subsequent penalty shootout, that the game was given a dramatic conclusion, with Croatia setting up a quarter final meeting with Russian Federation. Ball takes the deflection and Croatia now win the corner.
It was harsh on a Danish side that had fought so superbly, though Croatia would have felt hard done by if they had gone out after what was going to be a clear goal only resulted in a penalty which they subsequently missed in extra time.
45' - Substitution: Denmark's Lasse Schöne replaces Andreas Christensen.
The Real Madrid man stepped up - but Schmeichel guessed the right way to not only save but also hold the spot-kick to take the game into a shootout.
Nicolai Jorgensen (for Cornelius 66) - 5 - Entered the fray in a like-for-like swap with Cornelius, and provided his side with an equally effective outlet up top.
105' - Substitution: Denmark's Pione Sisto replaces Martin Braithwaite. They also put in arguably the best performance of the first stage, a 3-0 thumping of Argentina, in Nizhny Novgorod, where they will also play Denmark.