Fast bowler Nandre Burger took 4-33 as South Africa bowled out India for just 131 in their second innings to win the 1st Test by an innings and 32 runs in Centurion on Thursday.
Virat Kohli was the only batsman to test the home attack on the third day, top-scoring with 76 before being the last man out.
South Africa had earlier taken a first innings lead of 163 as Dean Elgar (185) and Marco Jansen (84 not out) extended their first innings to 408.
India were 62 for three at tea, still 101 runs in arrears, with Indian captain Rohit Sharma (0), fellow opener Yashasvi Jaiswal (5) and Shubman Gill (26) all back in the pavilion.
The collapse began in earnest after the resumption as Burger, who had already removed Jaiswal with a sharp lifter, had first innings centurion KL Rahul, Ravi Ashwin and Mohammed Siraj all caught behind the wicket.
Jansen showed his all-round value to the team by taking 3-36.
Kagiso Rabada, who took five wickets in the first innings, picked up 2-32 and completed the victory by taking a sensational catch to remove Kohli whose 76 included 12 fours and a six.
The India innings lasted just 34.1 overs and leaves them looking for answers ahead of the second Test in Cape Town next week.
The loss means India will have to wait a while longer if they are to win a Test series in South Africa.
They are the only regular Test-playing country where India have yet to win a series.