AB de Villiers and JP Duminy hit centuries and Wayne Parnell took two wickets with his first three balls as South Africa put Australia under pressure on the second day of the second Test at St George's Park on Friday.
Australia were 112 for four in Port Elizabeth at the close in reply to South Africa's first innings total of 423.
De Villiers (116) and Duminy (123) posted a sixth wicket partnership of 149 as Australia conceded a total of 400 or more for the first time in 13 Test matches.
De Villiers continued his prolific run-scoring form as he notched his 19th Test century, while Duminy ended a string of low scores to record his third Test hundred.
It was De Villiers' sixth century during a record sequence of 12 Test matches in which he has scored a half-century or better and never been dismissed for under double figures.
Vernon Philander struck early in the Australian innings when he trapped Chris Rogers leg before wicket for five - the third successive single figure score by the left-handed opener.
Fellow opener David Warner counter-attacked but Parnell plunged Australia into trouble. Playing on his home ground in his first Test match in four years, he had Alex Doolan and Shaun Marsh caught behind with his first and third deliveries.
Warner was dropped on 43 when Morne Morkel got a ball to lift sharply and Warner edged it high to De Villiers' left. But South Africa struck again when Philander returned for his second spell and had Australian captain Michael Clarke caught at cover for 19.
Warner finished the day with 65 not out off 67 balls and nightwatchman Nathan Lyon was 12 not out. But South Africa failed to ask for a review when Lyon edged the ball down the legside off Dale Steyn in the penultimate over and he was dropped at gully by Duminy off Parnell in the last over of the day.
De Villiers and Duminy saw off the second new ball at the start of an extended morning's play during which 109 runs were scored off 34 overs.
Duminy, who had scored only 77 runs in his previous seven Test innings, was particularly impressive early on, hitting three boundaries in one over from Mitchell Johnson, whose pace was again negated by a slow pitch with even bounce.
De Villiers, who resumed the day on 51 not out, played himself in cautiously on another overcast morning before starting to unleash his repertoire of strokes.
Clarke tried some innovative field placings in an attempt to break the partnership, at one stage having four men in a ring in catching positions on the on-side, only for De Villiers to hit the only six of his innings over the fielders as Peter Siddle attacked his leg stump.
De Villiers reached his century with a sweep for four off Nathan Lyon. He faced 201 balls and hit 13 fours and a six. He faced a total of 232 balls, adding another four, before being beaten in the flight by Lyon and hitting a return catch to the off-spinner.
Duminy's half-century was scored off 108 balls with eight fours and he struck another five boundaries in reaching his hundred off 199 deliveries.
On a slow pitch, Clarke used his front-line fast bowlers sparingly between lunch and tea and made use of his part-timers, including himself, setting defensive fields.