Twin centuries from AB de Villiers and JP Duminy put South Africa in the driving seat on day two of the second Test against Australia at Port Elizabeth.
Resuming on 214 for five and with an expected new-ball barrage to survive in the morning, the Proteas needed substantial knocks from their two overnight batsmen and duly got them.
De Villiers, having already become the first batsman in Test history to score at least a half-century in 12 successive matches, compiled a classy 116, while Duminy outscored him with a battling 123 from number seven.
That saw South Africa to 423 all out, Australia's in-form attack for once blunted, and the Baggy Greens reached 112 for four on the back of David Warner's near run-a-ball 65 not out.
Australia took the new ball as soon as play began but, for the first time in recent memory, Mitchell Johnson could not make it talk.
Instead, Duminy counter-punched with great effect, hitting the left-arm quick for three boundaries in his second over of the day.
The scoring did not continue at that rate as Johnson, Ryan Harris and Peter Siddle found their areas, but crucially neither batsman offered a serious chance until spinner Nathan Lyon nearly persuaded Duminy to play on.
Back-to-back fours off Lyon's next visit got De Villiers going and the world's number one batsman signalled his intent to go on by launching Siddle for six over midwicket.
Both players began to milk the bowling and De Villiers reached his century by sweeping Lyon for his 12th boundary of the innings.
At lunch, the total had progressed to 323 for five, with Duminy reaching 59 in support of De Villiers.
Seven overs into the middle session, the stand was finally broken on 149 as De Villiers mis-judged the flight when attacking Lyon and fed the bowler a return catch.
The busy Duminy found solid, unflashy support in Philander and Wayne Parnell, who occupied 37 balls apiece for a combined 16 runs before departing.
The burden of scoring was mostly on the specialist batsman and Duminy accepted it, sweeping Lyon to the ropes to bring up a well-earned ton and nailing the occasional bowling of David Warner to signal the team's 400.
Lyon finally ended Duminy's 286-ball stay when DRS upheld an on-field lbw verdict and the innings was wrapped up soon after when Morne Morkel ran himself out.
Australia's innings started badly, with Chris Rogers pinned leg before in the fourth over by Philander.
New man Alex Doolan got lucky with just a single to his name when a thick edge landed safe, while Warner set about a series of early boundaries at the other end.
Any momentum that brought the tourists went up in smoke when Parnell entered the fray and struck twice in his first three balls to leave the score at 41 for three.
Doolan (eight) and Shaun Marsh (nought) were the victims, both edging behind to the grateful De Villiers.
Morkel found some serious pace but no luck, beating the edge several times and having Warner dropped on 43 when the ball evaded De Villiers' grasp.
Philander returned to snare Michael Clarke, popping a catch to Dean Elgar for 19, but nightwatchman Lyon stayed with Warner until the close.