India skipper Virat Kohli was a picture of patience and perseverance in his well-crafted 79 but South Africa gained the upper hand by bowling out the visitors for an underwhelming 223 on day one of the series-deciding third and final Test in Cape Town on Tuesday.
Reaching 141 for four at tea, India looked good for a 250 plus first innings score before losing six wickets for 82 runs in the final session.
Kohli (79 off 201 balls), back to lead the side after missing the second Test due to a back spasm, worked extremely hard for his first half-century of the series but eventually ran out of partners.
Cheteshwar Pujara (43) was the other batter who came with up a substantial contribution.
Lead South Africa pacer Kagiso Rabada, playing his 50th Test, was the standout bowler of the day and ended with four wickets for 73 runs in 22 overs. Tall left-arm pacer Marco Jansen picked up three wickets.
India got the important wicket of South African skipper Dean Elgar (3) towards close of play with Jasprit Bumrah getting him caught at first slip.
At stumps, the hosts were 17 for one in eight overs with Aiden Markram (8) and night watchman Keshav Maharaj (6) in the middle.
Earlier, Rabada and Kohli were engaged in a fascinating battle throughout the day before the South African removed the opposition captain who was looking for boundaries towards the end of the innings.
The hallmark of Kohli's special knock was how he dealt with balls in the off-stump channel, something he had struggled with heading into the series-decider.
What was remarkable was that he did not shy away from playing those glorious drives he is known for, he just picked the right balls to go for his strokes and did not play recklessly around the off-stump.
Kohli, who took 15 balls to get off the mark, got going with an expansive cover drive off Jansen and got his second slowest fifty with a sublime straight drive.
However, for the major part of his innings, Kohli was all grit and gumption as South African bowlers, especially Rabada, kept attacking the off-stump corridor in favourable conditions.
The Indian lower-order failed to contribute this time, leaving Kohli stranded.
Rishabh Pant (27) was the first to be dismissed in the final session as he tried to cut a ball too close to his body and ended up giving a simple catch to gully.
Jansen had Ashwin (2) caught behind by getting one to angle away and Shardul Thakur (12) was caught at short cover for spinner Keshav Maharaj's first wicket of the series.
In the afternoon session that yielded 66 runs, Pujara and Ajinkya Rahane (9 off 12 balls) were dismissed.