Smith was 162 not out as South Africa closed day three with a lead of 330 runs.
Cape Town: Graeme Smith and Hashim Amla punished England's bowlers in scorching heat as South Africa built a commanding lead on the third day of the third Test against England at Newlands on Tuesday.
South Africa were 312 for two in their second innings at the close, an overall lead of 330.
Smith muscled his way to his 19th Test century, finishing the day with 162 not out. He shared a second wicket stand of 230 with Hashim Amla, who made 95.
It was easily South Africa's best day of the series and with two days remaining they were in a strong position to push for a series-levelling victory.
Smith and Amla took advantage of the best batting conditions of the match and England struggled as the temperature reached 37 degrees in the shade. On the field there was nowhere for England to hide - from the sun which blazed out of a cloudless sky or Smith's powerful stroke play.
After a watchful start, the left-handed Smith attacked all the bowlers but was particularly aggressive against off-spinner Graeme Swann, man of the match in the first two Tests, although Swann was again England's most successful bowler, taking two for 104 in 33 overs.
Amla scored most of his runs against the faster bowlers and was particularly prolific in the area behind point as he made his runs off 155 balls, hitting 12 fours.
Amla had moved ahead of Smith at tea, scoring 73 to the captain's 65 but Smith launched a ferocious onslaught after the interval and had taken his score to 133 when Amla was out, caught off bat and pad at short leg off Swann.
Even when England thought they had Smith's wicket they were foiled. On 51, he was given out leg before wicket by umpire Tony Hill when he missed a sweep against Swann.
He asked for a television review and was reprieved when replays showed he had been struck more than 2.5m out from the stumps - beyond the reliable prediction range - and it also appeared the ball was going over the stumps.
One ball after crashing Graham Onions through the covers to reach a 171-ball century, Smith played a loose shot against the fast bowler and edged the ball to wicketkeeper Matt Prior.
Smith kicked his bat in annoyance and started to walk but Prior immediately acknowledged that the ball had bounced shortly before reaching him.
Smith needed only another 47 balls to go from his century to 150.
The day started well for South Africa when they needed just six overs to take the last three England wickets for 32 runs. It gave South Africa a lead of 18 runs.
Fast bowler Morne Morkel took wickets off successive balls in the first over of the day to complete his second five-wicket haul in Tests. He finished with five for 75.
Morkel had the right-handed Swann and the left-handed James Anderson caught at first slip by South African captain Graeme Smith off fast lifting deliveries.
Prior hit boldly to take his overnight score from 52 to 76 before he was bowled off a bottom edge when he shaped to pull Dale Steyn, who had figures of four for 74.
Smith and Ashwell Prince put on 31 for the first wicket in the second innings before Prince was leg before wicket to off-spinner Swann's seventh ball of the innings.
Prince survived one review, successfully winning the reversal of a leg side caught behind decision made by umpire Daryl Harper off the bowling of Anderson when he had five. A replay showed the ball had glanced off his pad with the bat not near the ball.
But there seemed little point to his second call for a review when he prodded forward to Swann and was given out by umpire Tony Hill. He looked palpably out and this was confirmed by a replay.