Match ends, Russia 2(3), Croatia 2(4).
Russia's remarkable World Cup run ended in a heart-breaking quarter-final defeat on penalties as Croatia bounced back from a late extra-time equaliser to set up a last-four meeting with England.
Defender Mario Fernandes, who had brought his side level through a header in the 115th minute, missed what proved to be the decisive spot-kick, with Barcelona midfielder Ivan Rakitic making no mistake to send his team into the semi-finals.
Immediately after his penalty went in Rakitic was mobbed by his team-mates - in repeat scenes of Croatia's last-16 shootout victory over Denmark.
Despite defeat, the home fans broke into heartfelt applause as they cheered their beaten side long and loud after the final whistle in recognition of their achievements against the odds.
Brazil-born defender Fernandes' miss - blazed low and wide of the post - was the second of two failed Russian spot-kicks.
Fedor Smolov missed the first with a weak Panenka effort that was easily stopped by Danijel Subasic, while opposite number Igor Akinfeev stopped one - a fabulous low save from Mateo Kovacic.
- 'The hosts feared a nightmare but Russia lifted a nation's spirits before last-eight exit'
- How the players rated
- Relive the action
- Croatia 'will have energy for England game'
But in the end that was irrelevant. As was the stunning goal that gave Russia the lead in this, their first quarter-final appearance since 1970 and the days of the Soviet Union.
That came through a Denis Cheryshev first-half curler from outside the box, his fourth goal of the tournament and one of the finest at this World Cup.
But only eight minutes later an Andrej Kramaric header amid slack marking brought Croatia level, and after the break Ivan Perisic saw a low shot crash against the post and out across the face of goal as Zlatko Dalic's side began to control the game.
Yet they only led for the first time when Domagoj Vida's header found its way into the net through a crowd of players in the first half of extra time.
And after Fernandes' late equaliser from Alan Dzagoev's free-kick - the midfielder was making his first appearance as a substitute since suffering injury in Russia's opening game - you felt the momentum would be with Russia.
But victory was Croatia's, and it means they emulate their great side of 1998, who were beaten in the semi-finals by eventual winners France 20 years ago.
Next will be England, who reached the World Cup semi-finals for the first time in 28 years with a 2-0 victory over Sweden earlier on Saturday.
The two teams will meet in Moscow on Wednesday at 19:00 BST, while Belgium and France will contest the first semi-final on Tuesday in St Petersburg, also at 19:00.
A step too far for proud Russia
As the national anthem soared around the ground before kick-off, Russia fans unfurled two banners that read: "If not you, who? If not now, when?"
Here in Sochi on Friday, boss Stanislav Cherchesov was asked whether the meeting with Croatia was the biggest match of his players' lives.
Of course it was - it was a World Cup quarter-final on home soil.
All this for a team ranked 70th in the world who before the tournament were fancied by very few to make it out of their group.
However, Cherchesov did not want to put any more pressure on his players. "I hope that the most important games are still ahead of us," he said with a knowing smile.
It turns out his hopes will not be realised - at least not at this tournament.
But Russia can be hugely proud of what they have achieved, and not only in this performance where the players clearly showed they understood only too well that a once-in-a-lifetime opportunity was at stake.
They almost pulled off another sensational triumph - and it was recognised in the reaction of the incredible home support, who applauded their team off the pitch for a final time in emotional scenes.
Will Croatia have energy to beat England?
For Croatia, this is a generation that is quite probably playing its last World Cup together - perhaps even its last major tournament.
Real Madrid's Luka Modric is 32, Barcelona's Rakitic, 30, Juventus forward Mario Mandzukic is 32, and Inter Milan forward Perisic 29.
Despite those stellar names this was not a dominant performance - up against a battling Russia team Zlatko Dalic's side failed to make their supposed superior quality count.
But just as they did against Denmark in the last 16, they found their way through to the next round - on penalties again, after extra time again.
With England up next in four days' time, will they have the energy to finally produce their very best? Can they go one better than the team of 1998? Time will tell.
Man of the match - Luka Modric (Croatia)
'Russia has fallen in love with national team' - the quotes
Russia boss Stanislav Cherchesov: "We trusted ourselves. We could only prove our worth by working hard. I believe that people did not only start trusting us but they are in love with us.
"The entire country of Russia is in love with us. They know what the Russian national team is worth. We hope we have turned the situation for the better."
Goals across the team - the stats
- Croatia have now had eight different scorers at the 2018 World Cup - only Belgium (9) have had more.
- Fourteen of the 20 goals conceded by Russia at the World Cup have been scored via set pieces, including six of the seven they conceded at the 2018 tournament.
- Only one of the last six World Cup matches to go to extra-time has not gone to penalties - the 2014 final between Germany and Argentina.
- Both of Croatia's goals in this game were via headers - only one of their previous 29 World Cup goals was a header.
- There were three headed goals in this match - the most in a World Cup match since Germany 8-0 Saudi Arabia in 2002 (5 headers).
- Russia's Artem Dzyuba was involved in five of Russia's 11 goals at the 2018 World Cup (3 goals, 2 assists).
- Denis Cheryshev scored four goals for Russia at the 2018 World Cup - only England striker Harry Kane has scored more (6).
- 2Figueira Fernandes
- 19SamedovSubstituted forErokhinat 54'minutes
- 17GolovinSubstituted forDzagoevat 102'minutes
- 6CheryshevSubstituted forSmolovat 67'minutes
- 22DzyubaSubstituted forGazinskiyat 79'minutesBooked at 109mins
- 15Al Miranchuk
- 16An Miranchuk
- 2VrsaljkoSubstituted forCorlukaat 97'minutes
- 6LovrenBooked at 35mins
- 21VidaBooked at 102mins
- 3StrinicBooked at 38minsSubstituted forPivaricat 74'minutesBooked at 114mins
- 9KramaricSubstituted forKovacicat 88'minutes
- 4PerisicSubstituted forBrozovicat 63'minutes
- 12L Kalinic
- Sandro Meira Ricci
- Shots on Target
Penalty Shootout ends, Russia 2(3), Croatia 2(4).
Goal! Russia 2(3), Croatia 2(4). Ivan Rakitic (Croatia) converts the penalty with a right footed shot to the bottom left corner.
Goal! Russia 2(3), Croatia 2(3). Daler Kuzyaev (Russia) converts the penalty with a right footed shot to the bottom left corner.
Goal! Russia 2(2), Croatia 2(3). Domagoj Vida (Croatia) converts the penalty with a right footed shot to the top left corner.
Goal! Russia 2(2), Croatia 2(2). Sergei Ignashevich (Russia) converts the penalty with a right footed shot to the bottom left corner.
Goal! Russia 2(1), Croatia 2(2). Luka Modric (Croatia) converts the penalty with a right footed shot to the high centre of the goal.
Penalty missed! Bad penalty by Mario Fernandes (Russia) right footed shot is close, but misses to the left. Mario Fernandes should be disappointed.
Penalty saved! Mateo Kovacic (Croatia) fails to capitalise on this great opportunity, right footed shot saved in the bottom right corner.
Goal! Russia 2(1), Croatia 2(1). Alan Dzagoev (Russia) converts the penalty with a right footed shot to the bottom right corner.
Goal! Russia 2, Croatia 2(1). Marcelo Brozovic (Croatia) converts the penalty with a right footed shot to the bottom right corner.
Penalty saved! Fedor Smolov (Russia) fails to capitalise on this great opportunity, right footed shot saved in the bottom left corner.
Penalty Shootout begins Russia 2, Croatia 2.
Second Half Extra Time ends, Russia 2, Croatia 2.
Dejan Lovren (Croatia) wins a free kick in the defensive half.
Foul by Roman Zobnin (Russia).
Luka Modric (Croatia) wins a free kick on the right wing.
Foul by Fedor Kudryashov (Russia).
Attempt saved. Roman Zobnin (Russia) right footed shot from outside the box is saved in the bottom left corner.
Marcelo Brozovic (Croatia) wins a free kick in the defensive half.