Ivan Perisic ended Iceland’s World Cup dream with a 90th-minute winner as Croatia racked up a third successive victory in Group D.
Iceland’s hopes of an improbable place in the knockout stages were raised when Gylfi Sigurdsson exorcised the demons of his penalty miss against Nigeria last time out with a spot-kick equaliser with 15 minutes to go.
But substitute Perisic fired home right at the end, after Milan Badelj’s second-half opener, to make it 2-1 and kill off any chance of Iceland progressing.
Croatia were well below their best but were ruthlessly efficient, as they have been throughout the tournament, with their six goals scored from just nine shots on target.
Iceland, for their part, took the game to their opponents and despite just 38 per cent possession they managed 15 attempts but could register only one goal.
With Croatia already qualified, Zlatko Dalic made nine changes with only Luka Modric and Perisic retaining their places.
While they enjoyed the majority of the early possession they looked like they were going through the motions and Iceland bided their time, coming alive in the final 15 minutes of the first half.
Hordur Magnusson’s near-post flick drifted wide of the far upright before he headed wide from another corner, while Sigurdsson’s one chance from a free-kick was comfortably saved by Lovre Kalinic.
Alfred Finnbogason drilled into the side-netting from distance after dispossessing Badelj to create a chance for himself and Birkir Bjarnason had a shot blocked by Kalinic from a half-cleared corner.
However, Croatia’s back-up goalkeeper saved his best effort for added time when he tipped wide Aron Gunnarson’s angled curling strike.
Badelj hit the crossbar with a long-range strike early in the second half, but the 29-year-old made no mistake moments later when the ball was cut back to him near the penalty spot.
Iceland’s response was immediate with Sverrir Ingason having a header tipped over and then hit the crossbar with another.
Croatia rested Modric with 25 minutes to go as Iceland continued to push forward, with Bjarnason scuffing a good chance wide from Finnbogason’s cross.
The pressure finally told in the 75th minute when substitute Dejan Lovren was adjudged to have handled Sigurdsson’s cross and the Everton midfielder drilled home the penalty.
But it was another substitute, Inter Milan’s Perisic, who produced the decisive moment to set up a last-16 meeting with Denmark.