Left-arm spinner Ravindra Jadeja finished with 5-21 and offspinner Ravichandran Ashwin took 3-39 as South Africa failed to last even two sessions on the third day after being set a fourth innings target of 218 a little after lunch.
South Africa's quest of winning in all three formats on its 72-day tour suffered a setback and it will be difficult for it to bounce back especially since other venues may also be made to suit India's spin strength.
The visiting side had prevailed 2-0 in a preceding three-game Twenty20 series and 3-2 in a five-match one-day international series to raise hopes of its first test series win on Indian soil in 15 years.
But South Africa, which had conceded a 17-run first innings lead, failed to come to grips with the conditions and the result had seemed obvious in less than a session.
The South African batsmen were rattled with the ball turning viciously and also keeping low on the odd occasion.
Jadeja misses ton but India in charge at Mohali
Jadeja, who is known to bowl well in the second innings of matches on such pitches, finished with his third five-for in tests. He took eight wickets in the match, as did Ashwin, who had a five-for in the first innings.
South Africa's premier batsmen could not apply themselves. Faf du Plessis edged a delivery from Ashwin to slip, captain Hashim Amla was bowled not offering a shot to a straight delivery from Jadeja and AB de Villiers was castled with an Amit Mishra delivery that kept low.
Left-handed opener Dean Elgar was the first wicket for an Indian fast bowler in the match as he top-edged a delivery from Varun Aaron and was caught at mid-on. South Africa was 45-5 in the 17th over at the fall of Elgar's wicket with the result looking quite evident.
"Two hundred was a gettable total, probably 150 would have been more realistic," Amla said. "There were some soft dismissals. We were in the game till we lost four or five (wickets today) and put pressure on the lower guys."
Earlier, legspinner Imran Tahir finished with 4-48 and offspinner Simon Harmer with 4-61 as India lost its last eight wickets for 39 runs.
View gallery
South African wicketkeeper Dane Vilas, right, celebrates …
South African wicketkeeper Dane Vilas, right, celebrates the dismissal of India's Ravindra Jadej …
India lost both overnight batsmen in the space of eight deliveries and the visiting team suddenly had a spring in their steps.
Captain Virat Kohli was dismissed for 29 by Van Zyl as he went for a drive but edged the ball for wicketkeeper Dane Vilas to take a fine catch standing up to the stumps.
It ended a useful 66-run partnership and Cheteshwar Pujara too fell as leg-spinner Imran Tahir struck with his first delivery of the day. Pujara compiled 77 with one six and six fours and was caught by Hashim Amla at slip.
Ajinkya Rahane fell cheaply as India slipped from 161-2 to 164-5. Substitute Temba Bavuma took a fine catch at forward short-leg to give offspinner Simon Harmer his first wicket of the innings and the pressure was suddenly on the Indian batsmen.
Harmer trapped Jadeja leg-before wicket and then Mishra went for a pull shot but was caught at square-leg and the batsmen to follow could do little.
India's batsmen were also rattled by the wicket, although Kohli said it wasn't too bad.
"I don't think there were any demons in the wicket," Kohli said. "The ball did not turn square at any stage and the batsmen had to apply themselves. There was no dismissal where the ball hit the batsman's gloves so I don't think it can be called a horrible pitch."
The next test will be played in Bangalore from Nov. 14 with the remaining two games to be hosted by Nagpur and New Delhi.