Just when it seemed Keshav Maharaj (72) and Vernon Philander (44) would bat out till stumps on Day 3, R Ashwin rounded things off, having Maharaj caught at leg-slip and, four overs later, in the last over of the day, trapping Kagiso Rabada (2) leg-before.
Till that point Philander and Maharaj had added 109 in 42.1 overs. The Indian bowlers, who had been relentless throughout the first two sessions, found the last hurdle insurmountable. Even the new ball did not help.
From 162/8, South Africa managed to reach 275. They are still behind 336 in the first innings, but they had, for some time, probably made Virat Kohli considering batting again. However, a night's rest and that fifth bowler should help Kohli decide on the follow on.
India are still firm favourites despite South Africa's resilience. However, South Africa may take the Test into the fifth day.
Mohammed Shami (2/44) struck early, having night-watchman Anrich Nortje (3) caught in the slips by Kohli. Wriddhiman Saha then caught Theunis de Bruyn (30) spectacularly off Umesh Yadav (3/37) to leave South Africa reeling at 53/5.
Faf du Plessis (64) and Quinton de Kock (31) then added 75 in 102 balls. Then, just before lunch, R Ashwin (4/69) turned one viciously past de Kock's bat to bowl him.
Ravindra Jadeja (1/81) trapped Senuran Muthusamy (7) leg-before shortly after tea thanks to an excellent decision by Nigel Llong, while Ashwin followed a string of off-breaks with one that went straight, and had du Plessis caught at slip.
R Ashwin (India): The pitch has already shown signs of wearing out, with the spinners turning the odd ball by the proverbial mile. Ashwin will be more than a handful to handle for the tourists.
Faf du Plessis (South Africa): Unlike some of his teammates, du Plessis has not hesitated to use his feet against the Indian spinners. His 132 runs in the series have been the outcome of some superb footwork and uninhibited strokeplay, more of which is likely to be on the cards.
India 601/5 decl. (Virat Kohli 254*, Mayank Agarwal 108; Kagiso Rabada 3/93) lead South Africa 275 (Keshav Maharaj 72, Faf du Plessis 64; R Ashwin 4/69, Umesh Yadav 3/37) by 336 runs.
India to win on Day 4 if they enforce the follow-on. If they bat again, they will have to play on Day 5 as well.