South Africa, who were top of the one-day rankings before the seven-week tournament began, collapsed to 149 all out from 43.5 overs in the second semi-final after Graeme Smith had won the toss and elected to bat.
It was their lowest total in a World Cup.
Pacemen Glenn McGrath - voted man of the match - and Shaun Tait did most of the damage, taking seven wickets between them.
Cricket Australia confirms India players subjected to racial abuse
Australia, who are gunning for an unprecedented third consecutive title, knocked off the runs with more than 18 overs remaining.
They are now unbeaten in 28 World Cup matches since losing to Pakistan in the 1999 tournament. This is the fourth World Cup running that they have reached the final, losing the first of those in 1996 to Sri Lanka.
South Africa, who have an unenviable record of losing when it matters in World Cups since they were re-admitted to the international sporting community in 1992, had preached a good game before Wednesday's match at the Beausejour Cricket Ground.
But the mantra "confidence, calmness and patience", which coach Mickey Arthur said the team had adapted to eliminate any lingering inferiority complexes against the top-ranked world champions, was seldom in evidence.
Faced with some excellent pace bowling from Tait, who delivered one of his more disciplined spells of the tournament, and 37-year-old McGrath, who produced one of his liveliest, South Africa succumbed to their lowest score in a World Cup.
Their previous worst was the 184 in the upset loss to Bangladesh in the second-stage Super Eights this month.
Smith (2) started the slide with an ugly heave towards cover to a delivery from Nathan Bracken which clipped his off-stump.
Jacques Kallis (5), the team's senior batsman and one of the most accomplished technicians in world cricket, drove McGrath through the covers for four then tried to cut a full-length delivery and was bowled.
AB de Villiers reached 15 before he edged a quick delivery from Tait to give wicketkeeper Adam Gilchrist the first of four comfortable catches.
Ashwell Prince (0) was out in the same fashion to McGrath without scoring, driving at a wide delivery and Mark Boucher fell next ball, caught at slip by Matthew Hayden.
Herschelle Gibbs (39), fortunate to get a reprieve on four when he seemed to edge Tait to Gilchrist, and Justin Kemp (49 not out) added 60 for the sixth wicket.
Gibbs hit some fine drives but his dismissal, caught behind off Tait, ended his team's hopes of posting a competitive total.
Tait finished with four for 39 and McGrath returned to the top of the wicket-takers' table with three for 18 from eight overs. Overall, he has 25 wickets from the tournament.
Charl Langeveldt bowled Gilchrist for one with his first ball and had Ponting dropped on four by Prince diving to his right at square-leg in his next over. Ponting retaliated by hooking a boundary and off-driving another.
The Australian captain reeled off a series of sumptuous drives before he was bowled by Andre Nel for 22 from 25 balls with five fours.
Matthew Hayden, struggling with his timing on a pitch with increasingly slow, low bounce scored 41 from 60 balls, and Michael Clarke drove fluently each side of the wicket to reach an unbeaten 60 from 86 balls with eight boundaries.
Andrew Symonds (18 not out) struck the winning runs with a four through mid-wicket.
Brilliant Bairstow guides England to victory over South Africa in first T20
Australian do 'barefoot circles' as anti-racism statement