After defeating Japan on penalties in the round of 16, the runners-up from last year survived their second straight shootout and will now take on either the Netherlands or Argentina, who are scheduled to play later.
Brazilian sensation Neymar felt he had won the match when he rifled home an extra-time goal for the five-time world winners during a tense and dramatic evening.
But instead of protecting their lead they went in search of a second and were punished when Croatia substitute Bruno Petkovic drilled in a left-footed equaliser three minutes from the end of extra-time, breaking Brazilian hearts.
Through a tense opening half at the Education City Stadium on Friday, there was nothing to separate tournament favourites Brazil and Croatia, with both sides enjoying half chances in a free-flowing game, but nothing clear-cut.
If anything, Croatia enjoyed the best chance of the half, when, after 13 minutes, Ivan Perisic could only miss-cue a whipped Mario Pasalic cross past Alisson’s goalpost.
The Brazilians, who have now lost four of their last five World Cup quarter-finals all to European opposition, enjoyed a much better start to the second half and came close again in the 66th when Lucas Paqueta was denied by Livakovic.
Claims for a handball by defender Josip Juranovic were shot down following a VAR review before Neymar was sent through by Richarlison in the 55th minute only to have his close-range effort blocked by Livakovic.
The Croatia keeper was kept busy and stopped Neymar again in the 76th minute, and by that time had more saves in the match, seven, than his Brazil counterpart, Alisson, had in the entire tournament, five.
Livakovic parried another Paqueta shot five minutes later as the few hundred Brazil fans in the stands grew louder and more impatient and the game trickled over to extra time with Brazil coach Tite visibly nervous.
They will next face either Argentina or the Netherlands who play later tonight.