Gylfi Sigurdsson’s first World Cup finals goal could not spare Iceland an early exit as Group D climaxed in thrilling fashion.
Everton midfielder Sigurdsson converted a 76th-minute penalty after Croatia defender Dejan Lovren was penalised for handling in the box.
Sigurdsson’s strike gave Iceland fleeting hope of progressing to the knockout stages after Milan Badelj’s accomplished finish had put Croatia in front eight minutes after half-time.
But Inter Milan attacker Ivan Perisic’s last-minute effort made it three wins from three for Croatia and condemned Iceland to defeat in Rostov-on-Don.
Sigurdsson is the seventh Everton player to score in a World Cup tournament and first since Tim Cahill and Yakubu both netted in the South African finals in 2010.
Sigurdsson was far and away Iceland's standout performer and featured prominently as his side, knowing they needed victory to stand any chance of clinching a last-16 berth, steadily assumed control of the opening half.
The former Swansea City man’s free-kick from distance just past the half-hour mark drew a flying save from Croatia goalkeeper Lovre Kalinic, one of nine players brought into the Croats’ team by boss Zlatko Dalic following the 3-0 drubbing of Argentina which booked their spot in the second round.
Sigurdsson turned provider shortly after when his cute return pass teed up striker Alfred Finnbogason for an attempt from the edge of the box which whistled past the upright.
Cardiff City midfielder Aron Gunnarsson’s arcing strike forced Kalinic into another smart stop on the stroke of half-time.
But Fiorentina midfielder Badelj drove a dagger into Icelandic hearts when he strode onto a bouncing ball in the box and arrowed a shot into the bottom-left corner soon after the restart.
Sverrir Ingason headed against the bar from a Sigurdsson corner and the Blues’ record signing sent an effort narrowly off target as Iceland hunted a leveller.
The equaliser arrived when Liverpool centre-back Lovren, on as a substitute, erred to concede a spot kick. Sigurdsson displayed courage in spades to step up after missing from 12 yards in the loss to Nigeria last Thursday. And the 28-year-old nervelessly lifted the ball high into Kalinic’s net for his 20th international goal on his 60th appearance for his country.
But Perisic – along with Luka Modric, one of only two players retained from the victory over Argentina – had the final say when he beat Hannes Halldorsson with a rising strike after being set up by Badelj.
Croatia advance to play Denmark, who shared a drab scoreless draw with France earlier in the day. And the French will meet Argentina next after the South Americans claimed second place in Group D with a dramatic success over Nigeria in St Petersburg.
Argentina, with five changes and a switch in formation, were an entirely different proposition from the confused outfit feasted on by Croatia five days ago. Jorge Sampaoli’s side led on 14 minutes when the incomparable Lionel Messi brilliantly cushioned a through ball from Ever Banega and fired across teenage Nigeria number one Francis Uzoho.
Wing-back Victor Moses equalised from the spot six minutes after the break following Javier Mascherano’s tug on Leon Balogun.
But with 2014 runners-up Argentina four minutes from a first group-stage exit since 2002 defender Marcos Rojo came to the rescue when he met Gabriel Mercado’s right-wing cross with a volley superbly guided inside Uzoho's left-hand post.