Ravindra Jadeja (2-52) and Mohammad Shami (1-41) did the trick for India as the Proteas were reduced to 113/3 starting from their overnight 82/0.
Then, Jacques Kallis (26 not out) and AB de Villiers (39 not out) put on 68 runs for the fourth-wicket to steady the ship until lunch.
India started the proceedings with Ishant Sharma (0-43), even as Graeme Smith and Alviro Petersen looked to further their opening stand.
He brought up the mark in the 22nd over of the innings, the second of the day. Two overs later, Jadeja almost had his man, with captain-keeper Mahendra Singh Dhoni effecting a very smart stumping.
But the curve of Petersen's boot in one of the replays appeared to be behind the line and allowed the third umpire to rule in his favour.
Their 100-run stand came in the 27th over, and in the very next, Jadeja, who had been looking to take a wicket, finally struck.
