Thakur ran through the hosts’ batting line-up with figures of 7 for 61 after Keegan Petersen struck a fine half-century before lunch.
Resuming at the overnight score of 35 for one, South Africa added 53 runs before losing skipper Dean Elgar for 28 but Petersen held the other end, scoring 62 off 118 balls. The visitors were all out for 202 in their first innings.
South Africa took a first innings lead of 27 runs over India.
Brief Scores: India 1st innings: 202 all out in 63.1 overs. (Mayank Agarwal 26, KL Rahul 50; Duanne Olivier 3/64, Marco Jansen 4/31, Kagiso Rabada 3/64). South Africa 1st innings: 229 all out in 79.4 overs (Keegan Petersen 62; Shardul Thakur 7/61).
Get breaking news alerts.
You have already subscribed