Faf du Plessis' bullish 103 propelled South Africa into a 205-run lead on day two of the second Test, against Pakistan.
Du Plessis put on 156 for the fifth wicket with Temba Bavuma (75), reaching his ninth Test century after being dropped down the leg-side on 96 by wicketkeeper Sarfraz Ahmed.
The stand helped South Africa to 382-6 in reply to Pakistan's first innings of 177 - a healthy lead giving them every chance of securing a series-clinching victory in Cape Town.
Pakistan, 1-0 down, struck early in the day after the Proteas resumed on 123-2 as Mohammad Abbas knocked over Hashim Amla's leg-stump.
Although Theunis de Bruyn also fell cheaply, Shaheen Shah Afridi taking a sharp catch in the gully, it proved to be a false dawn for the tourists as Du Plessis accumulated 13 fours in an innings spanning 226 deliveries.
Pakistan thought they'd removed Bavuma for three when the batsman edged Abbas in the direction of Azhar Ali at first slip only for the television umpire to rule that the catch had not been cleanly taken before the ball made contact with the ground.
The tourists' frustration mounted when Bavuma successfully overturned a decision on review after being given out lbw to Abbas.
The 28-year-old pressed on after posting his 13th Test fifty before being caught behind off Afridi having hit ten fours off 162 deliveries.
Du Plessis brought up his century with a driven three through the covers off Mohammad Amir only to fall shortly after when the seamer successfully reviewed after umpire Joel Wilson missed a snick through.
Wicketkeeper Quinton de Kock ensured there was no let up for the tourists, finishing unbeaten on 55 not out from 71 balls.
Watch day three of the second Test between South Africa and Pakistan live on Sky Sports Cricket from 8.25am on Saturday.