Croatia side beat hosts Russian Federation 4-3 on penalties following a 2-2 draw in their last-eight match in Sochi.
Denis Cheryshev scored a brilliant opener in the first half but just eight minutes later former Leicester City striker Andrej Kramarić headed the Croatians level.
Croatia will play England, who earlier beat Sweden 2-0 in Samara, at the Luzhniki Stadium in Moscow on Wednesday.
Russian Federation have been the surprise package of the 2018 World Cup and their opening goal against Croatia was no exception.
"That was a great success for Croatia as a nation, and we are on the right track to repeat that feat".
Domagoj Vida looked like he had won it for Croatia in extra-time, only for naturalised hero Mario Fernandes to find an even later equaliser to force a penalty shootout.More news: Israel To Withhold Families’ Payments From Palestinian Markets
Croatia's Dejan Lovren and team mates celebrate winning the penalty shootout.
Croatia goalkeeper Danijel Subasic, already hobbled with a leg injury, could do nothing but watch it hit the net. It goes to extra time. "The team gave everything it had to the cause and we can sleep soundly tonight".
But as in the previous match against Denmark - which Croatia also won on penalties after an insipid 1-1 draw - all too often his team mates failed to do anything with them.
In a related incident, Federation Internationale de Football Association also issued a warning to Croatia goalkeeper, Danijel Subasic, who lifted his jersey to reveal a T-shirt commemorating a teammate who had died from game-related injuries in 2008.
Modric and Rakitic were decisive in the shootout but didn't play up to expectations in regulation and extra time, unable to create many significant chances for Ivan Perisic and Mario Mandzukic up front.
Cheryshev was Russia's leading scorer at the World Cup with four goals.
Saudi Arabia and Egypt were swept aside in the group stage.