Better team lost: Cacic
Ricardo Quaresma headed Portugal into the Euro 2016 quarter-finals three minutes before the end of extra-time to break Croatian hearts after dominating the game.
Cristiano Ronaldo was denied matching Michel Platini's record of nine goals in European championship finals by a fine save from Danijel Subasic, but the ball fell to Quaresma to head into an empty net.
"We knew the difficulties we were going to encounter, the stress, the anxiety that comes with the game, but I think we should congratulate ourselves because we believed until the end," said Quaresma.
Portugal will face Poland in the quarter-finals in Marseille on Thursday after the Poles beat Switzerland 5-4 on penalties after a 1-1 draw earlier on Saturday.
Ronaldo was kept extremely quiet for most of a dull encounter which became the first match in European Championship history where neither team managed a shot on target during the regulation 90 minutes.
Croatian boss Ante Cacic was left to bemoan his side's inability to turn possession into goals.
"We cannot say football is fair, we had many chances, we dominated for the whole match, so it was not a psychological problem," said Cacic.
“The best team doesn't always win and that happened tonight."
Portugal were the only side to progress to the last 16 despite not winning any of their three group games and coach Fernando Santos took an extremely cautious approach.
Star midfielder Luka Modric returned from injury, but both he and Barcelona's Ivan Rakitic struggled to sparkle as they had earlier in the tournament.