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.
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.
Also Read
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.