Kyle Abbott completed a five-wicket haul shortly after lunch to bowl India out for 334 on day two in New Delhi.
India were 326-8 at lunch but Abbott (5-40 in 24.5 overs) took the last two wickets in the space of three balls to get the second five-for of his career.
He had Ravi Ashwin (56) caught by AB de Villiers after the batsman got a top edge to a pull shot and Ishant Sharma was trapped lbw two balls later to wrap up the innings.
India added 103 runs to their overnight score of 231-7, thanks to Ajinkya Rahane’s first century (127) in India and Ashwin’s fifty. Together the pair shared a vital 98-run partnership which has put their team in firm control of proceedings.
South Africa will be kicking themselves for letting India get away from them. At 139-6 at tea on day one India should never have been allowed to add almost 200 runs for the last four wickets.
Credit to Rahane, who was under immense pressure to get his career on home soil going after low scores in the series. He was fortunate to get a second chance after Hashim Amla dropped him on 78 on Thursday, a mistake that has proved costly.
South Africa were sloppy in the field during the morning session where every run was vital.
Imran Tahir took the only wicket of the session when Rahane tried to scoop him over cover but only succeeded in finding De Villiers who took a straightforward catch.
Amla took the second new ball at the start of the day and while the seamers bowled well, the tactics perhaps weren’t aggressive enough.