South Africa shook off its early season rust with an 80-run win over Australia at St. George's Park on Sunday to level the one-day series 1-1 and send it to a deciding game.
Four South African batsmen made half-centuries in an imposing 303-6 and pacemen Morne Morkel and Lonwabo Tsotsobe shared six wickets to stifle Australia's reply as the top-ranked ODI team was bowled out for 223.
Australia - which dominated the opening match but fell well short on Sunday - has another chance to win its first ODI series in South Africa since 2002 in Friday's final match in Durban.
Stalwart Jacques Kallis made 76 and former skipper Graeme Smith 57, sharing a 142-run partnership to lay the foundation for South Africa's first ODI win under new coach Gary Kirsten.
David Miller (59) and JP Duminy (56) added vital runs to continue South Africa's momentum on a slow, low Port Elizabeth pitch that proved tricky for Australia to chase on.
"The batting set the game up," South Africa captain Hashim Amla said. "In the last game we lacked partnerships but the boys came back and showed what we're capable of. The bowlers responded beautifully as well. All to play for in Durban now."
David Warner (74) and Michael Hussey gave the tourists a hint of a chance at what would have been the second highest successful run chase at St. George's in ODIs with a 71-run stand after Ricky Ponting and Michael Clarke departed early.
But Hussey was run out after grinding out 37 off 62 balls - and before he had the chance to launch a counterattack.
Warner hit six fours but also was restricted by disciplined Proteas bowling and couldn't break free. He fell to a top-edged pull shot to Morkel, who finished with 4-22, starting the tourists' slide from 133-3 to 223 all out.
Tsotsobe had 2-32 in a key partnership with Morkel, with the left-arm Tsotsobe building pressure and the lanky Morkel striking frequently.
"A lot of work has gone in in the last couple of days," Morkel said. "A solid performance from the bowlers and I'm glad we could do that for the team. The momentum is with us now."
South Africa was in top form in every department - like Australia was in the first game - to set up a mouthwatering finale to the one-dayers. The countries will also play two tests next month to round off a monthlong tour, which is dead even after the Twenty20 series was drawn.
"Unfortunately we got outplayed in all facets of the game tonight," Australia skipper Michael Clarke said. "South Africa showed us how to bat on a pretty slow wicket, they executed with the ball and they fielded better than us.
"Very disappointed with our performance, we have got a lot of work to do before Durban. It's a massive game."
Kallis struck seven fours and two sixes in his 83rd ODI half-century, salvaging a shaky start after Amla fell to a caught and bowled by Doug Bollinger off the first ball of the match.
Former skipper Smith supported, returning to form in a first half-century in 12 innings after struggling at the start of the tour following South Africa's long offseason.
Smith and Kallis fell within a run of each other, with Kallis run out by a superb direct hit by Clarke, and South Africa wobbled to 157-4.
But Miller hammered a six over long-off early in his innings to signal his attacking intentions. Duminy built gradually, allowing Miller to dominate their 107-run stand before sending two towering sixes into the stands near the end.
South Africa's 303 was the fifth highest ODI score at the ground.
Bollinger had 2-64 off 10 overs and left-arm spinner Xavier Doherty bowled well in a defensive effort for his 1-43. But teenage fast bowler Pat Cummins had his toughest international outing to date, returning 1-73 off 10.
Allrounder Shane Watson pulled up with back spasms and wasn't able to complete his fourth over to compound Australia's problems. He appeared at No. 6 in the batting lineup, but by then Australia was already slipping toward defeat.
Opening in place of Watson for the second successive game, Ponting stroked two blistering boundaries but fell to a low, scrambling catch by Faf du Plessis - which was sent up to the TV umpire to be confirmed.
Clarke edged behind off Morkel for one and with Australia 37-2, Hussey and Warner consolidated.
But the pressure built - and the required run rate soared - and Hussey set off on a suicidal single, was sent back by Warner, and couldn't make his ground. After 13 overs without a boundary, Warner skied a pull to wicketkeeper Mark Boucher.
Watson (15), Steven Smith (26) and Brad Haddin (13) all holed out in the outfield as Australia chased a lost cause and Doherty was caught off the final ball - as the match started and ended with a wicket.