This was India’s 11th successive Test series win at home as they broke Australia’s record of 10 series wins in the longest format.
South Africa were bundled out for 189 in the second innings as Umesh Yadav and Ravindra Jadeja picked up three wickets apiece.
Ravichandran Ashwin also accounted for a couple of wickets while Ishant Sharma and Mohammed Shami bagged one wicket each.
Earlier India posted 605 runs on the board, thanks to Virat Kohli’s unbeaten knock of 254.
South Africa were bowled out for 275 in the first innings.
India now lead the three-match series 2-0. The final Test will be played in Ranchi, starting October 1.