South Africa were bundled out for 130 in their second innings at the stroke of lunch to hand India a target of 208-run to win on Day four of the first Test of the three-match series here at Newlands on 8 January.
Resuming at the score of 65-2, none of the South African batsmen managed to make a good start as the wickets fell like a pack of cards, losing their eight wickets for only 65 runs.
Though swashbuckling batsman AB de Villiers played some good shots, notching two boundaries and two sixes, but he too failed to convert his good start into big innings and was dismissed for 35, the highest score of South Africa's second innings.
The hosts were eventually dismissed for 130, with Mohammad Shami finishing with the figures of three for 28 while Jasprit Bumrah claiming three for 29.
Meanwhile, Bhuvneshwar Kumar and Hardik Pandya took two wickets each.
The match also saw wicketkeeper-batsman Wriddhiman Saha script history as he punched 10 catches during the Test to set a new Indian record.
With the feat, Saha snapped former Indian skipper Mahendra Singh Dhoni's record of nine victims. He bagged five catches in the first innings and repeated the same in the second on Monday.
Dhoni had achieved the feat against Australia in Melbourne in December 2014.
Earlier, after taking a commanding first-inning lead of 142 runs at stumps on Day Two, South Africa were a bit unlucky as heavy rains called off the third day completely.