India made light work of South Africa's target, winning by nine wickets to go 2-0 up in the 6-ODI series. Rohit Sharma was the lone wicket to fall, the right-hander hooking a well-directed bouncer from Rabada straight to Morne Morkel at fine leg.
Shikhar Dhawan (50), with in-form captain Virat Kohli (40), chased down the remaining runs with 29 overs to spare.
Earlier, leg-spinners Yuzvendra Chahal and Kuldeep Yadav ran amok with the ball as South Africa folded for a paltry 118 - its lowest total on home soil - at Centurion. On a slow turner, Virat Kohli won the toss and inserted South Africa into bat.
And in absence of star batsman AB De Villiers and captain Faf Du Plessis - out of the series with a finger injury - the host found itself in knots against India's wrist spinners.
Hashim Amla was the first to depart, Bhuvneshwar Kumar had him caught behind the stumps. And once Quinton De Kock was out caught off Chahal's bowling, it was a procession of South African batters dumbfounded by the Haryana spinner's guile and control.
Kohli: ‘Chahal, Yadav can get turn on any surface’
South Africa lost its last five wickets for a mere 19 runs as Chahal finished with his first five-wicket haul in ODI cricket (5 for 22). He had ample support from Kuldeep Yadav, who returned figures of 3 for 20. For South Africa, J.P. Duminy and debutant K Zondo topped the batting chart with 25 runs each.