Quinton de Kock hit his second successive century at the World Cup on Thursday as South Africa sent five-time champions Australia crashing to a 134-run defeat.
After the Proteas had made 311-7, Australia lost six wickets with just 70 on the board and then focused solely on attempting to limit the damage to their net run-rate.
They were eventually dismissed for 177 with 55 balls to spare.
For South Africa, it was a second win in two games while Australia have lost both of their matches.
Australia, who lost by six wickets to India in their opener, saw five catches dropped when South Africa batted.
Their mood did not improve once they began chasing a 312-run target, losing wickets on a regular basis as South Africa's fast bowlers ripped through their top order.
Marco Jansen and Lungi Ngidi sent back openers Mitchell Marsh (seven) and David Warner (13) before Kagiso Rabada took three quick wickets.
Rabada had Steve Smith lbw controversially on review for 19, clean-bowled Josh Inglis for five and had Marcus Stoinis smartly caught down the legside by wicketkeeper De Kock, also for five.
Australia were unhappy with the decision as Stoinis appeared to have his hand off the bat when the ball brushed his glove on its way to De Kock.
In between, off-spinner Keshav Maharaj claimed dangerman Glenn Maxwell off his own bowling as the Australian nicknamed "The Big Show" suffered stage fright and was out for just three.
With the match virtually lost, Australia went into damage limitation, hoping to ease the damage to their run rate with still seven pool matches to play in the marathon event.
At the halfway stage of 25 overs, they had crept to 95-6 before Marnus Labuschagne (46) and Mitchell Starc (27) put on 69 for the seventh wicket.
They fell in the space of seven balls before the innings collapsed with leg-spinner Tabraiz Shamsi wrapping up the tail.
- 'Sick' of De Kock -
Earlier, 30-year-old De Kock reached his 19th ODI hundred off 90 balls with eight fours and five sixes having also made a century in South Africa's opening win over Sri Lanka.
De Kock, who will retire from international cricket at the end of the tournament, was batting in familiar surroundings at the Ekana Stadium where he plays in the IPL for the Lucknow Super Giants.
He was eventually dismissed for 109, bowled by off-spinner Maxwell while trying to reverse sweep in the 35th over.
"I'm sick of watching him score runs, feels like it happened a lot against us. He's a superstar," said Maxwell at the innings break.
South Africa were on 197-3 when De Kock departed before Aiden Markram then took up the charge.
Having made the fastest World Cup century off just 49 balls in the win over Sri Lanka, Markram raced to 56, making the most of being dropped by Australia skipper Pat Cummins when he had made just a single.
It was a miserable day in the field for Australia as South Africa captain Temba Bavuma was also dropped twice on 19 and 32.
Marsh dropped Virat Kohli in their opening game when the Indian star was on 12. Kohli went on to make a match-winning 85.
Bavuma's luck ran out on 35 when he was caught at midwicket by Warner off Maxwell.
With De Kock, the skipper put on 108 for the first wicket.
Once Markram was dismissed by Cummins, the Proteas saw Jansen (26) and David Miller (17) take them past the 300 mark.
Both Miller and Jansen fell in the final over, a double-wicket maiden bowled by Starc.
They should have been dismissed in the penultimate over when Starc dropped Miller and Stoinis gave Jansen a lifeline, both off Cummins.
Quinton de Kock hit his second successive century at the World Cup on Thursday as South Africa made 311-7 in their group game against five-time champions Australia.