Opener Janneman Malan 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 the three-match series after the second One-Day International at Boland Park on Friday.
India chose to bat in sweltering conditions, with the mercury rising above 40 degrees Celsius for much of the day. The visitors posted 287 for six in their 50 overs, which 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 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."
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 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.
"We wanted to win the series, but we weren't expecting to do it after two games," Bavuma said.
"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."
The third and final match of the series will be played at Newlands in Cape Town on Sunday. The results do not count towards the Cricket World Cup Super League.