Opener Janneman Malan has scored 91 as South Africa chased down a victory target of 288 for a comfortable seven-wicket win over India and an unassailable 2-0 lead in their three-match one-day international series.
India chose to bat in sweltering conditions at Boland Park on Friday, with the mercury rising above 40 degrees Celsius for much of the day, and posted 6-287 in their 50 overs.
It looked a good total on a slow wicket that should have favoured them but South Africa paced their reply superbly, with Malan and fellow opener Quinton de Kock (78 from 66 balls) putting on 132 for the first wicket.
Malan, who now has three hundreds and three fifties in his 12 ODI innings, put on another 80 with captain Temba Bavuma (35) before he was bowled by Jasprit Bumrah, the ball deflecting onto the stumps off his elbow.
The home side, who won the first ODI by 31 runs, reached their target with 11 balls to spare.
"We wanted to win the series, but we weren't expecting to do it after two games," Bavuma said after the South Africans had continued their domination following the Test triumph over India.
"Not many people gave us a chance, but as a team we have a lot of self-belief and confidence, we believe in each other. We go out there and fight for one another."
Rishabh Pant led the Indian charge in their innings with an excellent 85 from 71 balls in which he played some sparkling shots all around the wicket before picking out long-on Aiden Markram off the bowling of wrist-spinner Tabraiz Shamsi (2-57).
He put on 115 for the third wicket with captain KL Rahul (55), which followed a duck by former skipper Virat Kohli, who could not follow up his half-century in the last game with another big score.
South Africa were sloppy in the field, with a number of dropped catches and missed run-out chances, and might feel they gave India 20 or 30 runs too many.
"We are making mistakes, but it is a good learning for us, though it is not great to be on the losing side two games in a row," India captain KL Rahul said at the post-match presentation.
"I don't think it was a pitch where they should have chased down 280 that easily, but they played really well."
The third and final match of the series will be played at Newlands in Cape Town on Sunday.
Australian Associated Press
Sign up for our newsletter to stay up to date.