Aiden Markram led the way as South Africa enjoyed one of their most consistent days to stay well in front of Australia by the close of day three of the third Test on Saturday.
The Proteas could claim to have had the better of all three sessions as they first needed just 17 balls to take the final Australian first innings wicket while 10 runs were added to the total before moving on to 65 for the loss of Dean Elgar's wicket by lunch.
They then scored 86/2 in the second session and 87/2 in the final one to reach the close on 238/5 for an overall lead of 294 runs at Newlands.
Importantly, they still had AB de Villiers (51 off 103 balls) and Quinton de Kock at the crease.
Both players will be critical to getting the Proteas through the second new ball which falls due in 8 overs time.
De Villiers reached a notable landmark when he went past Jacques Kallis as South Africa's leading all-time runs scorer in Tests against Australia and a further 19 will take him to 2000 against these particular opponents.
Earlier, Markram survived two dropped catches in and went on to make a solid 84. Markram was out shortly before tea. Markram, out for nought in the first innings, could have completed a "pair" but he was dropped off the fourth ball of the second innings when he edged Mitchell Starc low to the left of Usman Khawaja at gully.
He survived another much more difficult chance on 59 when Australian captain Steve Smith flung himself to his right at second slip and got his fingertips to a flying edge off Josh Hazlewood.
Smith, who held a world record-equalling five catches in the first innings, had already added to his tally by catching first innings century-maker Elgar off Cummins for 14.
Markram, who made a century in the first Test in Durban, batted solidly despite his lapses and hit ten fours and two sixes in a 145-ball innings. He shared partnerships of 76 with Hashim Amla (31) and 47 with de Villiers.
Markram was out in the last over before tea when he chipped Mitchell Starc to mid-on where Cummins held a low catch.
Makram maturity continues to make a huge impression and he has now gone past 800 runs from his first 9 Test matches.
De Villiers opened his scoring with a slapped six off the back foot over cover off Cummins but it was the only scoring shot in the first 20 balls he faced as he made a cautious start to his innings.
South Africa bowled out Australia for 255 at the start of the day, a first innings lead of 56. Australia's last batsman, Josh Hazlewood, hit two fours off Kagiso Rabada before he was caught by Amla at first slip off Rabada off the 17th ball of the day.
In contrast to the first two days of play, the weather was cool and cloudy and bad light ended play about 40 minutes early. —Agencies