South Africa by three wickets in the second semifinal of the World Cup on Thursday in Eden Gardens, to set up a title clash with hosts India.
The final will be played on Sunday at Ahmedabad.
David Miller struck a 116-ball 101 and lifted South Africa to 212 all out after his team had lost four early wickets.
In reply, Australia stuttered before completing the chase of 213 with 16 balls to spare as South Africa choked yet again on the big stage.
Travis Head blazed away to 62 off 48 balls while David Warner smashed 29 off 18 in an opening stand of 60 to lay the foundation for Australia's chase.
Earlier, Miller hit eight fours and five sixes during his rescue act, and brought up his century with a maximum over deep midwicket off Australian captain Pat Cummins.
Opting to bat after winning the toss, South Africa were off to a disastrous start losing both their openers Quinton de Kock and Temba Bavuma with just eight runs on the board in the sixth over.
Rassie van der Dussen and Aiden Markram too didn't last long, leaving South Africa precariously placed at 24/4 in the 12th over.
Mitchell Starc and Josh Hazlewood were the wreckers in chief early into South Africa's innings.
A partnership of 95 runs between Miller and Heinrich Klaasen (47 off 48 balls) steadied the ship before Australia struck again to remove the latter through Travis Head.
Brief score:
South Africa: 212 all out in 49.4 overs (David Miller 101, Heinrich Klaasen 47; Pat Cummins 3/51, Mitchell Starc 3/34, Josh Hazlewood 2/12).
Australia: 215/7 in 47.2 overs (Travis Head 62; Tabraiz Shamsi 2/42, Gerald Coetzee 2/47, Keshav Maharaj 1/24).
(with inputs from agencies)