Centuries by Jacques Kallis and Hashim Amla and a top-order batting collapse by Australia put South Africa in a commanding position in the series-opening test on Sunday.
South Africa only needs to draw the three-match series to retain the No 1 test ranking and is already pushing for a 1-0 lead after scoring 450 in its rain-interrupted first innings and then Dale Steyn and Morne Morkel combining to pick off David Warner (4), Rob Quiney (9) and Ricky Ponting (0) in the space of 25 minutes to have Australia reeling at 40-3 late on day three.
Skipper Michael Clarke (34 not out) and opener Ed Cowan (49 not out) combined to stem the flow of wickets, putting on an unbeaten 71 for the fourth wicket to take the hosts to stumps at 111 for three.
There was a moment of late concern for the Australians when South Africa appealed for a legside caught behind when Cowan was on 47 and the total at 107-3.
But the replays showed Morkel's front foot wasn't behind the line and it was called a no-ball. Hot spot technology showed Cowan didn't connect with the ball, anyway.
South Africa had resumed Sunday at 255-2, after the entire second day was washed out by rain, with Amla on 90 and Kallis on 84. The pair rarely appeared to be troubled by the Australian attack.
But the glaring lapse in a stand that put South Africa into such a strong position was the extraordinary decision not to challenge the dismissal that ended their 165-run partnership.
Amla had just scored his third hundred in as many tests against Australia when he was adjudged lbw to Peter Siddle for 104 by umpire Asad Rauf.
Amla and Kallis discussed it and opted not to use one of the team's two permitted challenges - a regrettable call considering TV replays indicated the ball would have gone over the stumps.
Kallis, then on 99, went on to post his 44th test century before he was out for 147 after a 90-run fourth-wicket partnership with AB de Villiers (40).
Kallis and de Villiers were out within 11 balls, both cutting in consecutive James Pattinson overs as South Africa slipped from 374-3 to 377-5.
Quiney took a diving, two-handed catch at gully to remove Kallis, who plundered 14 boundaries and a six; De Villers hit a hard cut shot to point, where Warner took a good catch.
Vernon Philander lofted offspinner Nathan Lyon for six to bring up 400 runs for South Africa in the 135th over but he was out soon after for 11, edging Siddle to Clarke at second slip.
Jacques Rudolph contributed 31 from 69 balls before his dismissal made it 426-7.
The South Africans went to tea at 434-7 and were all out 14 minutes after the break with Ben Hilfenhaus removing Steyn (15) and Morkel (0) to pick off the last two wickets.
Rory Kleinveldt was unbeaten on 17, including two towering sixes. Hilfenhaus finished with 2-73 and Pattinson had the best figures of 3-93.
The South Africans only had 10 available batsmen after J.P. Duminy ruptured his left Achilles in a training accident after the first day. He had surgery on Saturday and was expected to be sidelined for six months.
Duminy will be replaced in the squad by fellow allrounder Dean Elgar.
The left-handed batsman and slow left-arm bowler is due to join the squad in Australia next week for the remainder of the series.
Play resumed a half hour early Sunday in a bid to make up some overs and both teams stopped play at 11 a.m. and stood together in a line for a Remembrance Day ceremony.
At one stage, it didn't seem likely Australia would bat on Sunday, but the late flurry of wickets left the hosts with 26 overs to navigate before stumps.
It started badly, with Warner prodding at Steyn and edging to Kallis at second slip.
Quiney's first test innings ended when he hooked Morkel to fine leg, where Steyn took a clever catch right on the boundary - taking the catch and then throwing it up as he neared the rope and regathering the second grab as Australia slipped to 30-2.
Former captain Ricky Ponting never got comfortable before he pushed forward at a sharply-rising Morkel ball to give Kallis his second catch at second slip.
Should the NZ selectors pick Jesse Ryder if he's available?