Clarke reached 150 for the 10th time in his test career and in doing so moved past three Englishman on the all-time run scorers list - Geoffrey Boycott, Kevin Pietersen and David Gower.
His innings was interrupted just past the midway point of the afternoon session by a downpour, together with high winds, which forced the players from the field at Newlands.
The Australian captain took a battering on day one from pace bowler Morne Morkel, who struck him a number of times, including a sickening blow to the back of the head.
But Clarke showed admirable composure to tough it out on what is a flat wicket and having been unbeaten on 92 overnight, was able to bring up his hundred, though not before spending 24 balls stuck on 99.
He reached his century off 215 deliveries with 11 fours and Newlands is now the first ground outside of Australia where he has two tons to his name.
South Africa picked up just one wicket in the morning session but added three more after lunch, including two in consecutive balls from part-time spinner JP Duminy (four for 73).
Steve Smith (84) had looked in immaculate touch before he played onto his stumps off Dean Elgar. It ended a fourth-wicket stand of 184 in 50 overs between Smith and his skipper.
Shane Watson looked to attack the bowling with 40 from 32 balls but perished when he picked out Hashim Amla at long-off off Duminy.
The spinner then claimed two wickets in as many balls, first Brad Haddin (13) caught at mid-off by Amla following a brief juggling act, and then Mitchell Johnson (zero) who got a feather edge to a leg-side delivery and was caught by wicketkeeper AB de Villiers.
The South African pace attack has been blunted by the absence of the world's top Test bowler Dale Steyn, who limped out of the game on Saturday with a hamstring strain. He is unlikely to bowl again in the match.
The teams are level at 1-1 with South Africa not having beaten Australia in a home Test series for 44 years.
Image: Michael Clarke of Australia celebrates after completing his century on Day 2 of the third Test against South Africa at Sahara Park Newlands in Cape Town on Sunday.
Photograph: Morne de Klerk/Getty Images
South Africa fired up to end 44 years of agony against Australia
Bhullar has big drop, Kapur moves up in South Africa
Fiery Dale Steyn leads South Africa to crushing win
Warner and Clarke put Australia in control
Australia's Lehmann pleased to be 'bowled out'