Keegan Petersen's 72 was as classy as they come, but there was little else for South Africa to celebrate on day two of the third, series-deciding Test against India at Newlands on Wednesday.
At stumps, India were 57/2 in their second innings with Cheteshwar Pujara (9*) and Virat Kohli (14*) at the crease. That gives them a lead of 70.
SCOREBOARD | Proteas v India - 3rd Test, Day 2
It was another disappointing batting return from the hosts, who resumed the day on 17/1 in near-perfect conditions with the sun baking down on the Newlands turf.
At that stage, the Proteas had a real opportunity to bat themselves into a position of authority in this Test, but they were all out for 210 instead.
India were dismissed for just 223 on day one, and even with their skipper Dean Elgar back in the hut overnight, South Africa would have backed themselves to reach that total and then put on a lead.
It was not to be, thanks largely to a devastating exhibition of fast bowling from spearhead Jasprit Bumrah (5/32).
Kagiso Rabada (4/73) had delivered something special for his side on Tuesday, but Bumrah answered that and then some on Wednesday.
Mohammed Shami (2/39) was also incredibly impressive, delivering a double-blow to remove Temba Bavuma (28) and Kyle Verreynne (0) in the space of three balls, and it was all reward for an Indian seam attack that was disciplined, accurate and asking the right questions of a South African batting line-up that continues to stutter.
Aiden Markram (8) was out leaving the second delivery of the day as Bumrah crashed one into his off-stump, and while there were mini-recoveries with night-watchman Keshav Maharaj (25), Rassie van der Dussen (21) and Bavuma all offering some support to Petersen, it was nowhere near enough.
Petersen was 4* after facing 40 balls, surviving a thorough examination of his defensive credentials and technique, but as his innings progressed he began playing with more freedom and was quick to pounce on anything loose or overpitched.
By the time he was done, Petersen had faced 166 deliveries and had batted for over four hours.
His second half-century in as many Tests will be a hugely encouraging sign for this side with the future in mind, but that Bavuma was the next highest scorer speaks volumes about South Africa's problems with the willow on the day.
Markram has scored just 60 runs in his five innings in this series, and question marks will now start hovering over his place with the likes of Sarel Erwee and Ryan Rickelton waiting patiently on the sidelines.
The talent has never been in question, but Markram has simply not scored the runs needed from him over the last three Tests, and he will be desperate to make a telling contribution when the Proteas are asked to chase down a target later in this contest.
What that target will be now becomes the question.
South Africa chased down 240 at the Wanderers in Test two, but they would not want to be doing that again in Cape Town.
This Newlands wicket is certainly not misbehaving, and Petersen and Virat Kohli have shown what is possible through application and sound judgment, but the fast bowlers are always in with a shout if they land deliveries in the right areas.
Rabada (1/25) did that in his spell on Wednesday evening, as did Marco Jansen (1/7), with those two responsible for nicking off Mayank Agarwal (7) and KL Rahul (10) to reduce India to 24/2.
That was precisely the start the Proteas needed after their batting effort disintegrated, and they will need much more of the same when play resumes on Thursday.
At this stage, it seems highly unlikely that the Test will go beyond four days, with a total of 22 wickets having fallen in six sessions so far.
It is still all to play for, but given where they were at the start of the day, India and Kohli will surely be satisfied with their position now.
A first Test series win in South Africa in eight attempts is well within reach.
Scores in brief:
India 223 (Kohli 79, Pujara 43, Rabada 4/73, Jansen 3/55) and 57/2
SA 210 (Petersen 72, Bavuma 28, Bumrah 5/42)
India lead by 70 runs with 8 second-innings wickets remaining