David Warner hit a century and captain Michael Clarke battled his way back into form as Australia dominated the first day of the series-deciding third and final Test against South Africa at Newlands on Saturday.
Warner put a week of controversy behind him and hit a sparkling 135 off 162 balls in an Australian total of 331 for three.
Clarke, who twice needed treatment after being hit, went past 24 for the first time in 12 Test innings to make 92 not out on a day when South Africa lost strike bowler Dale Steyn with a hamstring injury midway through the afternoon.
Steyn, who took the first wicket, left the field after bowling one ball of the fourth over of his third spell and did not return.
It was the second time in successive matches that South Africa, having picked only four specialist bowlers, lost one to injury after Wayne Parnell suffered a groin strain in the second Test in Port Elizabeth.
Warner was fined 15 percent of his match fee and criticised by his captain, Clarke, after making "inappropriate comments" suggesting ball tampering by South Africa after the second Test.
But if the left-handed opening batsman was affected by the controversy he showed no sign of it.
He was in charge from virtually the first ball he faced after Clarke won the toss and claimed first use of an easy-paced pitch.
Warner reached his fourth successive score of 50 or better after facing just 50 balls and went to his seventh Test century off 104 deliveries.
Warner shared partnerships of 65 for the first wicket with Chris Rogers, who started Australia's dominance by hitting two fours in the first over by Steyn, 73 for the second wicket with Alex Doolan and 79 for the third wicket with Clarke.
After surviving five dropped catches in his previous three innings of 115, 70 and 66, Warner did not offer a chance although when he was on 95 the South Africans thought he had been caught behind down the leg side by De Villiers off Steyn.
He was given not out by umpire Aleem Dar. South Africa sought a review but replays showed the ball had deflected off his thigh pad, not his bat.
Clarke survived some hostile short-pitched bowling from Morne Morkel to be on 22 not out at tea.
When he was on nine he was struck on the left forearm and needed treatment.
Four runs later he turned away from another bouncer and was felled by a blow to the cheek.
He again needed treatment before resuming his innings and was then struck on the glove, with the ball falling out of reach of short leg fielder Duminy.
Late in the day, Clarke took a blow on the right thumb from Morkel, bowling with the second new ball.
Clarke and Steve Smith scored freely towards the close, against the second new ball, adding 37 runs in six overs before the close.
Clarke faced 191 balls, hitting nine fours.
Smith became the third batsman to notch a half-century, finishing the day on 50 not out, made off 92 balls.
With the series locked at 1-1, both sides made two changes following South Africa's 231-run win in the second Test in Port Elizabeth.
Australian all-rounder Shane Watson, recovered from a calf injury, replaced Shaun Marsh, while fast bowler James Pattinson was selected ahead of Peter Siddle.