Socceroos progress to the last 16 in Stuttgart
Harry Kewell equalised in the 78th minute as Australia twice came back from a goal down to earn the point they needed to finish runners-up to Brazil and set up a clash with Italy in the last 16.
Three players - Croatia's Dario Simic and Josip Simunic plus Australia's Brett Emerton - were sent off in a dramatic finale with Simunic being shown three yellow cards by English referee Graham Poll in the confusion.
Croatia captain Niko Kovac had put his team ahead 11 minutes into the second half with a long range shot that bobbled past Australia goalkeeper Zeljko Kalac.
Australian defender Craig Moore had scored a 38th minute penalty to cancel out a third minute goal by Croatia midfielder Darijo Srna, but it was Kewell's late goal that saw Australia advance to play Italy in Kaiserslautern on Tuesday morning.
Srna caught the Socceroos napping early with a superbly taken free kick after Socceroos skipper Mark Viduka tripped Niko Kovac just outside the area.
Srna, who had missed a penalty in Sunday's scoreless draw with Japan, made amends when he curled the ball over the wall past Kalac to score his country's first goal of the tournament.
Australia regained their composure and looked to have strong grounds for a penalty when defender Simunic brought down Viduka, but referee Poll ruled that there was no foul.
However, Poll had no hesitation in pointing to the spot seven minutes before the interval when Croatia defender Stjepan Tomas reached up and handled the ball in the goalmouth.
Moore coolly slotted the penalty past Stipe Pletikosa.
Croatia, who needed to win to stay alive after losing 1-0 to world champions Brazil then drawing with Japan, looked to have sealed victory when Kovac scored but Kewell's instinctive reflexes from a goalmouth scramble saw them bow out.