India has never won a Test series in South Africa and the debutant, Lungi Ngidi, with his six-fer ensured that the drought continues as the Virat Kohli-led side suffered a 135-run defeat in the second Test, at SuperSport Park here on 17 January.
South Africa have now an unassailable 2-0 series lead in the three-match Test series.
Starting the fifth day on an overnight score of 35/3, India were bundled out for 151 against the target of 287, which included South Africa's second innings' score of 258 and 28-run lead.
Cheteshwar Pujara was India's first causality of the day as he went down for 19 in a run out.
He was followed by Parthiv Patel who was dismissed for 19 by Kagiso Rabada.
Rohit Sharma then served savior for a brief time and added 47 runs for the side, the highest from any Indian batsman in the second innings.
He was eventually dismissed by Rabada.
Hardik Pandya then gifted Ngidi his third wicket of the innings.
Ngidi then rammed through the lower order and scalped Ravichandran Ashwin, Mohammed Shami and last man Jasprit Bumrah.
Ishant Sharma was not out on 4.
Earlier on Day Four, openers Murali Vijay and Lokesh Rahul were dismissed by Rabada and Ngidi respectively.
Ngidi then also scalped the crucial wicket of skipper Virat Kohli at just 5 runs.
This is Kohli's first series loss as a full-time India skipper.