Quinton de Kock scored his second ODI century to help South Africa beat India by 141 runs at the Wanderers on Thursday.
De Kock scored 135 off 121 balls and was instrumental in the Proteas posting an imposing 358 for 4, batting first against the number one ranked ODI team in the world.
India could only muster 217 all out in 41 overs, with captain MS Dhoni contributing an unsupported 65.
Dale Steyn and Ryan McLaren picked up three wickets each.
India started their chase under immense pressure and quickly wilted against the fiery South African bowling attack amid a vocal crowd at the Bullring.
Morne Morkel came on as first change and removed the highly-rated Shikhar Dhawan with the first ball of his spell. Dhawan attempted an ambitious hook off the short pitched delivery and was out for 12 with De Kock taking the catch.
De Kock went from hero to villain in a flash when he dropped a regulation catch behind the wicket, as Virat Kohli, on two, edged a rising Morkel delivery in the eighth over.
McLaren outfoxed Kohli (31 off 35 balls) with a rising delivery that the batsman played straight to the safe hands of Jacques Kallis at first slip in the 15th over.
McLaren struck again two balls later to remove Yuvraj Singh for a second ball duck. The all-rounder found the gap between bat and pad to clip the top of middle stump to leave India reeling on 60 for 3 after 15 overs.
Rohit Sharma was run out for 18 in the 16th over by a good piece of fielding from David Miller. Suresh Raina nudged a ball into the covers and set off for a quick single, but Miller took a quick gather and made the direct hit in one movement. The third umpire sent Raina packing as replays revealed he was a foot short of his ground.
India then faced a mountain to climb at 65 for 4 after 15.4 overs.
Another run out followed as Dale Steyn, fielding at deep square, rocketed in a throw and with the help of De Kock had Raina run out for 14. India were left struggling on 108 for five in the 23rd over.
Ravindra Jadeja (29) was bowled by a Kallis delivery as any faint hopes India held of pulling off a miracle disappeared. With the strike, India had lost their sixth wicket, needing 201 from the final 20 overs.
Earlier, De Kock (135 runs, 121 balls, 18x4,3x6) was in typical aggressive mood, and with the experienced Hashim Amla (65 runs 88 balls, 5x4, 1x6) at the other end, put together an opening stand of 152.
After Amla fell, de Kock continued unabated as he moved toward three figures.
De Kock moved to 98 with a huge six over midwicket and then had no problem as he brought up his century off 101 balls. The 20-year-old was eventually out for 135 caught and bowled by Virat Kohli, with the Proteas on 247 for 3 in the 42nd over.
After de Kock left the scene, AB de Villiers (77 runs, 47 balls, 6x4,4x6) and JP Duminy (59* runs, 29b,2x4,5x6) shared in an explosive partnership of 105 runs off 46 balls which was instrumental in South Africa posting the huge score.
Earlier, after the first over went for just two runs, Bhuvneshwar Kumar dished up a delivery on the pads of De Kock who dispatched the ball through midwicket for four to get the innings going.
Both Amla and de Kock took a liking to the Indian bowling attack and scored with ease in the opening overs.
Amla hit the first six of the innings off the final ball of the eighth over. Kumar strayed onto the pads of the batsman, and Amla with a nonchalant flick and superb timing, dispatched the ball way over the boundary for a mammoth six.
Together the pair raced to their 50 partnership in the 10th over, and they continued their dismantling of the Indian bowlers on their way to the 100 stand. De Kock brought up the three figure score for his team with a heave through midwicket, which marked the first time in 69 ODIs South Africa had passed the 100 mark for the first wicket partnership.
The stand was finally broken with the score on 152. Amla attempted to play the ball fine off a Mohammed Shami delivery, but played on and was bowled for 65.
Jacques Kallis came to the middle, and attempted to smash his way through his opening overs. After hitting two fours, Kallis played his third aerial stroke but only succeeded in gifting an easy catch to Ravindra Jadeja at cover off the bowling of Mohammed Shami. Sapa