Tournament favorites Brazil crashed out of the World Cup after losing 4-2 on penalties to Croatia in the quarter-finals.
The match ended goalless after normal time.
Superstar Neymar equaled Pele’s record for Brazil with his 77th international goal in the first half of extra time at the Education City Stadium.
However, as the game ended 1-1 after extra time, Bruno Petkovic equalized with just four minutes remaining.
The Brazilians overcame South Korea with a 4-1 win in their Round of 16 tie – hotly tipped to add another World Cup title to their five so far.
World Cup news latest: Southgate warns star may not play against France
However, Croatian goalkeeper Dominik Livakovic proved to be the hero again for the 2018 runners-up.
He made three penalty saves in Croatia’s grueling last-16 tie against Japan and pulled off several saves to deny Brazil a goalless first 90 minutes.
Later, Rodrigo’s shootout penalty was saved by Livakovic and Marquinhos hit the post.
“It’s for the Croatian people,” said winning coach Zlatko Dalic.
Qatar World Cup: Which team is predicted to win?
“A great match from the first minute to the last. We eliminated the biggest favourites. This is not our end, let’s continue.
“It’s a win for all of us, everyone gave their best. Thanks to those on the bench who live for this national team.”
Croatia will now face Argentina in the semi-finals, after the South American side secured a place in the last four with a penalty shootout against the Netherlands.
Goalkeeper Emiliano Martinez was the hero, saving two penalties including Liverpool’s Virgil van Dijk to lead his side to a 4-3 penalty shootout victory.
In the match, Argentina looked as though they were cruising to the semi-finals after Lionel Messi put his side 2-0 up with a superb penalty after assisting Nahual Molina’s strike brilliantly in the first half.
But Vout Wegorst’s header in the 83rd minute and the towering striker’s dramatic equalizer in the 10th minute of injury time sent the game into extra-time and then penalties.
England and France, and Morocco and Portugal, will meet on Saturday for the other semi-final.