India set a challenging score of 359, but South Africa reached 362/6 in 49.2 overs to seal the victory and level the three-match series 1-1.
Aiden Markram led the chase with an outstanding knock of 110 runs off 98 balls. Matthew Breetzke contributed 68 off 64 deliveries, while Dewald Brevis added a quickfire 54 off 34 balls. Kobyne Bosch remained unbeaten on 29 off 15, guiding the team to a confident finish.
With this impressive win, South Africa have now leveled the series, setting up an exciting decider in the final ODI.