The hosts now have a chance to enforce the follow-on tomorrow. However, the question is, will Kohli take it after his bowlers had such a long day in the field?
Despite dismantling the South African top-order, the Indian bowlers toiled really hard to invade camaraderie between Keshav Maharaj and Vernon Philander for the 9th wicket. They stitched 109-run runs off 259 deliveries, out of which the latter played 192 balls, becoming the only No 9 batsman to face the most number of deliveries against India in an innings.
Before they could go any further, Ashwin struck in the 102nd over to get rid of Maharaj who was batting on 72.
Soon, Rabada was rapped in the front by Ashwin while Philander remained unbeaten on 44.
Earlier, the Proteas started the day at 36/3 and lost both their overnight batsmen Anrich Nortje (3) and Theunis de Bruyn (30) in the first hour of the play.
Nortje, who came in as nightwatchman on Friday evening, was the first wicket to fall as he was caught brilliantly at fourth slip by Virat Kohli off the bowling of Mohammed Shami.
Three overs later, de Bruyn played a loose shot and in the process got a thick outside edge against Umesh Yadav. Wicketkeeper Wriddhiman Saha dived to his right and took a stunning catch to end de Bruyn's inning.
Quinton de Kock and du Plessis then tried to steady the ship for the visitors and shared a crucial 58-run stand before de Kock was bowled by ace off-spinner Ravichandran Ashwin at his individual score of 31.
Skipper Faf du Plessis scored 64 from 117 balls. His 21st Test fifty was supported with six fours and a six before Ashwin found his outside edge and the ball flew to Ajinkya Rahane at slip.