Having slotted home the winning kick against Denmark in the last 16, Rakitic held his nerve to convert from the spot, with Mario Fernandes going from hero to villain by missing from 12 yards after his 115th-minute header had made it 2-2 deep into extra time.
After ending Russia's impressive run, Zlatko Dalic's side will aim to at least go one better than the famous 1998 vintage, who finished third in France, when they meet England at the Luzhniki Stadium on Wednesday.
Denis Cheryshev marked his return to the starting line-up with yet another contender for goal of the tournament after his stunning efforts against Saudi Arabia and Egypt in the group stage, but his first-half opener was cancelled out by Andrej Kramaric just eight minutes later.
Domagoj Vida headed Luka Modric's corner home 10 minutes into the first extra period, yet Fernandes, the Brazil-born defender who was only granted Russian citizenship by president Vladimir Putin two years ago, kept Russia’s hopes alive in a dramatic finish.
However, it was not to be for the resilient hosts, with goalkeeper Danijel Subasic saving Fedor Smolov's penalty and Fernandes firing wide before Rakitic sent Croatia through.
Russia focused on counter-attacking in the early stages and while Ivan Perisic glanced a header wide, Dalic's men struggled to turn their dominance of possession into clear-cut chances.
The home team punished them when Cheryshev came in from the left and, after a one-two with Artem Dzyuba, skipped away from Modric to curl an exquisite 31st-minute effort beyond Subasic, who remained rooted to the spot as the ball sailed in.
Cherchesov's men were unable to hold on until half-time, though, as Mario Mandzukic advanced down the left to set up the chance for an unmarked Kramaric to head home and silence Sochi.
Croatia went agonisingly close to taking the lead for the first time on the hour, only for the upright to deny Perisic after Igor Akinfeev had flapped at a lofted ball from Kramaric.
Subasic appeared to sustain a hamstring injury when stopping a deflected Aleksandr Erokhin cross going out for a corner, though he recovered to bat away Smolov's drive from an acute angle in stoppage time.
An injury to Sime Vrsaljko forced Dalic to send on Vedran Corluka as his fourth substitution in the first period of extra time, though Croatia were celebrating soon after when Vida nodded past Akinfeev.
The ailing Subasic managed to keep out Daler Kuzyaev but could do nothing as Fernandes popped up to draw his team level, converting Alan Dzagoev's free-kick after the CSKA Moscow midfielder was sent on for his first appearance since sustaining a hamstring injury in the tournament opener against Saudi Arabia.
2 - Croatia are just the second side to progress on a penalty shootout in consecutive knockout games in a World Cup tournament after Argentina in 1990 (v Yugoslavia and Italy). Nerve. #CRO #RUSCRO #WorldCup pic.twitter.com/xj1iaSQqls— OptaJoe (@OptaJoe) July 7, 2018
Penalties were required and while Smolov's feeble Panenka attempt with the first effort was foiled by Subasic, parity was restored when Akinfeev got down to his left to keep out Mateo Kovacic’s second kick for Croatia.
After Fernandes' failure, Modric got lucky when his strike found the net following touches off Akinfeev's glove and the post.
The decisive penalty once again fell to Rakitic, though, and he confidently rolled the ball into the bottom-left corner to keep Croatia's dreams of a first World Cup final alive.
Key Opta stats:
- Russia are the first host country to be eliminated at the quarter-final stage of a World Cup since Mexico in 1986.
- Denis Cheryshev scored four goals for Russia at the 2018 World Cup – only England striker Harry Kane has scored more (six).
- Croatia have now had eight different scorers at the 2018 World Cup – only Belgium (nine) have had more.
- There were three headed goals in this match – the most in a World Cup match since Germany 8-0 Saudi Arabia in 2002 (five).
- 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.