The stunning turnaround under the Duckworth/Lewis method meant South Africa maintained their unbeaten record in pink and make it 3-1 in the six-match series.
Heinrich Klaasen smashed 43 not out off 27 balls (5 fours, 1 six) and led the Proteas' assault on the Indian spinners after rain intervened twice to reduce the game to a 28-over contest.
Lightning and light rain had first intervened during the Indian innings, and it came again early during the South African innings. In total 113 minutes were lost and South Africa received a 202-run target from 28 overs.
After the rain delay, the Proteas needed 159 more off 124 overs, effectively turning this into a T20 game. It didn't help India as Bhuvneshwar Kumar (0-27) and Jasprit Bumrah (1- 21) had already bowled 4 overs each by then.
More From This Section
Amla was joined by JP Duminy (10), but they could only manage to add 24 runs for the second wicket. AB de Villiers (26 off 18 balls) arrived at the crease as the roof came down at the Wanderers and made his intentions clear as he smacked Yuzvendra Chahal (1-68) for two sixes over midwicket.
Suddenly South Africa were reduced to 102/4 with the wrist spinners in action. Then, came the turning point of the game as Chahal bowled David Miller, only for the delivery to be deemed a no ball.
Miller made full use of the reprieve as he went on to smack Pandya for three successive boundaries in an over and also hit Chahal for a six. Overall, he scored 39 off 28 balls, with 4 fours and 2 sixes.
Runs came thick and fast as the spinners thanks to a true batting pitch and dewy conditions due to rain were unable to contain the Proteas for once, going for 119 runs in 11.3 overs.
Andile Phehlukwayo smacked 23 not out off only 5 balls, including 1 four and 3 sixes, taking South Africa home with 15 balls to spare.
Dhawan put on 158 runs with skipper Virat Kohli (75). It was the eighth century partnership for the second wicket between these two batsmen, the most in ODIs Indian cricket, drawing level with Sourav Ganguly and Rahul Dravid who also have eight.
Dhawan also became the first Indian batsman to score a hundred in his 100th ODI. Overall, he became the ninth player to reach this milestone.
The Wanderers was expectedly bathed in pink for a good cause of creating awareness and raising funds for breast cancer.
Dhawan and Kohli then came together, replicating their success from previous matches in the series. Together they attacked the South African attack, finding the pitch much to their liking.
Kohli looked unstoppable once again and the highlight of his knock was a straight six off Lungi Ngidi as the batsman just walked down and launched him over the sightscreen.
In doing so, Kohli became the second batsman after de Villiers to score 350-plus runs in an ODI bilateral series on South African soil.
That break served South Africa well as India lost two wickets in the space of 14 balls after resumption of play.
Shreyas Iyer (18) was sent out at no.5 and together with MS Dhoni (42 not out) he calmed the situation for India.
Markram dismissed Pandya with a one-handed stunning catch at cover off Rabada as India slipped further. India scored only 89 losing 5 wickets after the rain break.