Denis Cheryshev struck a stunning opener from a distance to give the hosts the lead in the 31st minute but Croatia equalised through Andrej Kramaric just eight minutes later.
The Croatian players were quick to take back the initiative in the game and by the middle of the first half they registered the ball possession at nearly 70% against Russia's slim 30%.
The following time in the first half saw the referee booking two Croatian players.
Turning to his rival at club level but team-mate on the global stage, Rakitic described Croatia captain Luka Modric as "a leader" and admitted he loathes playing against the Real Madrid star.
Ivan Rakitic stroked home the winning penalty to send Croatia into a semi-final against England after a night of unremitting tension in Sochi, ending the remarkable campaign of a team ranked 70th in the world.
Vida's penalty put Croatia on the verge of the semi but Daler Kuzyaev scored to make them have to score their final one to go through.
The 90 minutes ended 1-1 before the referee signaled for the start of the extra time. "It shows when he isn't playing, as Real Madrid are a different team without Luka". The English team defeated Sweden 2-0.
They have quickly been embraced as national heroes, with the mayor of Moscow responding by making additional public viewing space available in the city before the match in Sochi's Fisht Stadium.