|Second Test, Centurion (day five of five):|
|South Africa 335 (Markram 94, Amla 82) & 258 (De Villiers 80)|
|India 307 (Kohli 153) & 151 (Ngidi 6-39)|
|South Africa won by 135 runs|
Debutant Lungi Ngidi took 6-39 as South Africa beat India by 135 runs in the second Test to win the series with a game to spare.
The 21-year-old helped bowl India out for 151 in pursuit of 287 to win before lunch on the final day in Centurion.
Fellow pace bowler Kagiso Rabada claimed 3-47, with Rohit Sharma (48) and Mohammed Shami (28) were the only batsmen to reach 20.
The final Test in Johannesburg starts on 24 January.
India, ranked the number one Test side, lost their last seven wickets in 28 overs after resuming on 35-3.
Cheteshwar Pujara was run out for the second time in the match and Parthiv Patel was brilliantly held by a diving Morne Morkel at fine leg off Rabada.
Ngidi, who removed India captain and first-innings centurion Virat Kohli for five the previous evening, had Hardik Pandya and Ravichandran Ashwin caught behind in successive overs.
After a fine AB de Villiers catch accounted for Sharma, Ngidi sealed victory with two wickets in seven balls.
If South Africa complete a 3-0 whitewash, they will go level on points with India at the top of the rankings.
Proteas captain Faf du Plessis was later fined 40% of his match fee - with his team-mates fined 20% - for maintaining a slow over-rate during the game. It means if South Africa commit a similar offence within 12 months in a Test with Du Plessis as captain, he must serve a suspension.