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 as he ended the hosts' remarkable run at this tournament.
Immediately after his penalty went in Rakitic was mobbed by his teammates - in repeat scenes of Croatia's last-16 shootout victory over Denmark.
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.
But in the end that was irrelevant. It was a 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 an injury in Russia's opening game - you felt the momentum would be with Russia.
But the victory was Croatia's, and it means they emulate their great side of 1998, which were beaten in the semi-finals by eventual winners France 20 years ago.
The two teams will meet in Moscow on Wednesday (11) while Belgium and France will contest the first semi-final on Tuesday (10) in St. Petersburg.