They could have wrapped up the result five minutes from the end of extra time but Luka Modric had his penalty saved by Kasper Schmeichel.
However, the Croatia captain returned to bravely take one of the post-match kicks as goalkeeper Danijel Subasic save three of Denmark's efforts to set up a quarterfinal meeting with Russia on Saturday.
It was Modric's sublime pass that put Ante Rebic through on goal, before being brought down by Mathias Jorgensen, and offered Croatia a chance to win just before the lottery of the shootout. But Schmeichel made a smart save to keep the 1-1 stalemate intact through two hours of at times pedestrian football.
Two chaotic goals in the opening four minutes made for a rollicking start at the Nizhny Novgorod Stadium. However, it proved a false dawn as the spectacle faded with both sides choosing caution as their priority given the rare chance to reach the last eight at a World Cup.
Jorgensen took all of 57 seconds to breach the Croatia defence at the end of a long throw-in by Jonas Knudsen, stabbing at the ball with his left foot as he took it off
Croatia goalkeeper Danijel Subasic got a hand to Jorgensen's toe-poke but effectively deflected the ball across his own line.
There was an element of comedy to the fourth-minute equaliser for Mario Mandzukic as Denmark's early advantage quickly disappeared.
A kick across the Danish defence was firmly hit away by Henrik Dalsgaard but straight into the face of
The anticipated influence of Christian Eriksen for the Danes and Croatia's Modric held out hopes of more mouth-watering action but their craft was only evident in patches.
Eriksen did shave the top of the woodwork just before halftime with a speculative effort while, at the other end, Ivan Rakitic forced a smart save from Schmeichel.
After the interval, the chances were even more sparse although Croatia did up the tempo towards the end of regulation time only to run into a resolute Denmark defence.
In extra time, Knudsen's long throws proved the most dangerous attacking weapon but