South Africa captain Graeme Smith scored his 19th test century to put the hosts 330 runs ahead of England and in full control of the third cricket test after the third day at Newlands.
Smith scored 162 not out as he steered South Africa, who're 1-nil down in the four-match series, to 312 for two in their second innings.
Hashim Amla and Smith scored 230 for the second wicket, before Amla was dismissed for 95.
England made 273 in reply to the Proteas first innings of 291.