Croatia overcame World Cup hosts Russia 4-3 on penalties following a 2-2 draw after extra-time to set up a semi-final showdown with England.
Ivan Rakitic struck the crucial spot-kick after Fedor Smolov and Mario Fernandes failed from the spot for Russia to settle a gritty quarter-final in Sochi on Saturday evening.
Denis Cheryshev's stunner (31) had earned Russia a first-half lead in front of a boisterous home crowd, but that was cancelled out eight minutes later when Andrej Kramaric headed in.
Domagoj Vida (100) headed Croatia in front in extra-time only for Fernandes to equalise five minutes from the end to take the game to penalties, but Stanislav Chercheshov's players were unable to replicate their shootout success over Spain and exit their own tournament at the quarter-final stage.
Man of the match: Ivan Rakitic
Cheryshev had earlier sent the host nation into raptures with a stunning opening goal on 31 minutes, which will be remembered as one of the best of the 2018 World Cup.
The midfielder started the move himself in the centre circle, playing a one-two with striker Artem Dzyuba before taking a touch and unleashing a curling left-footed shot from the edge of the area which sailed into the top corner.
But the lead barely lasted eight minutes as Russia were undone by some sloppy defending. Mario Mandzukic found time and space on the left to drift into the penalty area and tee up an unmarked Kramaric to power home a header from the edge of the six-yard box.
There were precious few chances in a cagey second half, but Ivan Perisic should have won the game after an hour when he struck the inside of the post from eight yards after Sergei Ignashevich and Fyodor Kudryashov failed to deal with Mandzukic's cross,
However, Croatia's second goal arrived from an unlikely source 10 minutes into the extra-time period when Vida rose highest to head Luka Modric's corner down and past Igor Akinfeev.
But with five minutes left on the clock, Russia responded in with a dramatic equaliser as Fernandes rose to head in Alan Dzagoev's free-kick and take the game to a penalty shootout.
Danijel Subasic saved Russia's first kick – a chipped effort from Smolov – but Mateo Kovacic saw Croatia's second effort saved after Roman Zobnin and Dzagoev both converted.
But Russia's Fernandes put the next kick wide and there was to be no respite this time as Luka Modric, Vida and then Rakitic all scored to earn Croatia a second straight shootout win at this tournament and end the fairytale run of the unfancied hosts.