Dane Piedt and Kyle Abbott ripped through India's batting order, but Ajinkya Rahane stayed strong at one end, scoring the highest individual score in this Test series on a fascinating opening day of the fourth Test match at the Feroz Shah Kotla in Delhi.
Having survived a difficult first session, where South Africa bowled tight lines and gave very little away, India threw away the advantage, with some poor shots and good bowling â€“ from Dane Piedt (34-5-101-4) and Kyle Abbott (17-6-23-3) -- proving to be their undoing.
Rahane, though, held one end up brilliantly, scoring an unbeaten 89 (155b, 9x4, 2x6) to take India to 231/7 in 84 overs, before bad light brought a premature end to the day's play.
South Africa were in absolute control at the end of the second session, with India going into Tea on 139/6 in 53.5 overs, having lost five wickets for 79 runs in 27.5 overs in the second session.
But a couple of good partnerships in the final session â€“ between Rahane, dropped on 78 by Amla, and Ravindra Jadeja (24, 59b, 3x4), and Rahane and R Ashwin (6, 29b, 1x4), an unbeaten 33 â€“ brought the match right back into the balance on a wicket that had a bit for all parties, be that the fast bowler, spinner or the batsman.
Earlier, South Africa, with India starting on 60/1 at the second session, picked up two quick wickets, dismissing Shikhar Dhawan (33, 85b, 4x4) and Cheteshwar Pujara (14, 37b, 1x4, 1x6) in the space of a couple of over.
Dhawan first fell to the impressive Dane Piedt, with the off-spinner trapping the left-hander in front of off-stump, before Kyle Abbott found a way through the gate to castle Pujara.
India actually fought back well from those two quick wickets, as Ajinkya Rahane (31 n.o., 62b, 3x4) and Virat Kohli put on 70 runs in quick time. Kohli, in particular, was hitting most balls off the middle of his bat and looked primed for his first half-century of the series, if not more.
However, luck would desert the India skipper in the final ball of the 47th over. Kohli (44, 62b, 7x4) connected perfectly off a sweep shot off the bowling of Piedt, but the ball, unfortunately for the batsman, hit the short-leg fielder Temba Bavuma's thigh and lobbed up for wicketkeeper Dane Vilas to dive forward and complete the catch.
Rohit Sharma then showed, yet again, why he should not be playing Test match cricket, going for a big shot off Piedt, a couple of balls after he was dropped by Hashim Amla in the slips, and holing out at long-on.
It only got worse for India, as Wriddhiman Saha was bowled by Kyle Abbott right on Tea, leaving the hosts in big trouble.
In the morning, Kohli won the toss for the fourth time in a row and decided to bat first, but what followed was some outstanding South Africa bowling and equally-good dogged batting from India in the first session.
On a day when Virender Sehwag, Delhi's greatest cricketing son, was felicitated, the India openers batted in a manner that Sehwag never would, using their defence and survival skills to quell some good bowling from South Africa.
Morne Morkel and Abbott, in for Kagiso Rabada, would have hoped for some movement in the morning, and they got that, just enough to prevent the openers Murali Vijay and Dhawan from getting off to a flying start.
Out of Vijay and Dhawan, the former has been the more assured opener over the past 18 months, always aware of his off-stump and more-often-than-not looking capable of scoring big runs. However, on day one morning of this Test match, the roles were reversed, with Dhawan looking a lot more comfortable, leaving those balls outside off-stump quite well, while Vijay was tentative.
Every time the ball was bowled in that corridor of uncertainty â€“ and there were quite a few of those from Morkel and Abbott â€“ Vijay looked troubled, and it was little surprise when the outside edge was found by the excellent Abbott in the 12th over.
However, luck was just not in South Africa's favour, with Kumar Dharmasena, after AB De Villiers completed the catch at second slip, deciding to go upstairs to check for the no-ball. Third umpire Nandan decided that there was nothing behind the line, after watching replays for about five minutes â€“ it was a decision that could have gone either way -- and Vijay was given a life.
Vijay (12, 59b), though, did not take advantage of that life, as off-spinner Dane Piedt, playing his first match of the Freedom Series after coming in for Simon Harmer, picked up the opener, with a proper outside edge again carrying comfortably to Hashim Amla at first slip.
Cheteshwar Pujara came in and weathered a bit of a storm on this pitch that was showing variable bounce right from the off, with India going into Lunch on 60/1 in 26 overs, before the drama of the day really unfolded.