Croatia and Portugal didn’t have a shot on target for 117 minutes of football, but Ricardo Quaresma’s tap-in proved decisive.
It means Portugal make their way through to the quarter-final against Poland even if they have not won any games in 90 minutes during Euro 2016.
Luka Modric and Juventus striker Mario Mandzukic returned from muscular injuries after the 2-1 victory over Spain, while Croatia again looked to Inter duo Marcelo Brozovic and Ivan Perisic. Fiorentina midfielder Milan Badelj also pulled the strings. Portugal squeezed through the group phase in third place after three draws with Iceland, Austria and Hungary. Andre Gomes passed a fitness test to start, but Joao Moutinho was dropped with Adrien Silva, Cedric Soares and Jose Fonte making tournament debuts.
Perisic had a remarkable new hairstyle with the red and white checks of the Croatian flag painted into the back of his scalp, having previously sported the outline of the country on there.
Portugal were very cagey and seemingly not interested in keeping possession, but had the first chance after 25 minutes when Pepe nodded a free kick over the bar.
Perisic hit the side-netting after a strong run, but there wasn’t a single shot on target in the first half.
Brozovic just failed to get on the end of an Ivan Strinic cross and on the resulting corner the Inter midfielder ballooned over.
Portugal introduced teenager Renato Sanches and he fired wide at the end of an impressive solo attempt.
Mandzukic and Domagoj Vida both went for the same Darijo Srna free kick, turning it wide. There was some confusion when Nani tried to get on to a chipped pass and took it on his shoulder, getting kicked by Strinic, but the referee waved away timid penalty appeals, partly because Nani’s heavy touch was already taking the ball out of play.
Astoundingly, this was the first major tournament match without a shot on target in 90 minutes since 1980, so it went inevitably to extra time.
Perisic’s cheeky headed chip was just over the bar, Fiorentina striker Nikola Kalinic horribly mis-kicked after breaking past a Fonte challenge and Brozovic blasted wide.
Nani completed missed the ball during an attempted acrobatic overhead kick, but Croatia wasted a golden opportunity when Rui Patricio ran into No Man’s Land on a corner and Vida still turned his free header off target.
All the action was condensed into the final three minutes of extra time. Perisic saw his diving header thump the upright, then Portugal countered and Cristiano Ronaldo’s effort was parried by Danijel Subasic, but only into the path of Quaresma for the headed tap-in.
Croatia poured forward, but Vida’s volley from a corner was inches wide.
Croatia 0-1 Portugal aet
Quaresma 117 (P)
Croatia: Subasic; Srna, Corluka (Kramaric 120), Vida, Strinic; Modric, Badelj; Brozovic, Rakitic (Pjaca 110), Perisic; Mandzukic (Kalinic 88)
Portugal: Rui Patricio; Cedric, Pepe, Fonte, Raphael Guerreiro; Joao Mario (Quaresma 87), Adrien Silva (Danilo 108), William Carvalho, Andre Gomes (Renato Sanches 50); Nani, Ronaldo
Ref: Carvallo (ESP)