Goalkeeper Dominik Livakovic was the hero, saving three penalties in the shootout, as Croatia edged past Japan after a 1-1 draw to reach the World Cup quarter-finals.
Livakovic kept out the first two efforts before stopping Maya Yoshida's kick, then Mario Pasalic converted the vital effort to take his side through.
Zlatko Dalic's side, beaten in the final by France four years ago, will face tournament favourites Brazil or South Korea in the next round on Friday (15:00 GMT).
Japan were the livelier side and took a deserved lead two minutes before half-time when Celtic forward Daizen Maeda converted from Yoshida's knock down.
Croatia levelled in the second half courtesy of Ivan Perisic's brilliant bullet header from Dejan Lovren's cross, becoming his country's all-time leading scorer at major tournaments with 10 goals.
Neither side could find a breakthrough and the game ticked into the additional 30 minutes, with Brighton midfielder Kaoru Mitoma's spectacular strike pushed over by Livakovic.
At the other end, Marko Livaja's flicked header looked to be looping in, but Shuichi Gonda managed to gather and Lovro Majer dragged a shot in the 120th minute.
The contest went to nerve-shredding penalties, where Livakovic emerged as the man to lead Croatia's celebrations.