Cape Town - A batting masterclass by Indian captain, Virat Kohli saw India post an imposing 303/6 in their allotted 50 overs in the third ODI against the Proteas at Newlands.
LIVE: Proteas v India, 3rd ODI - Newlands
The Proteas were off to the perfect start when Kagiso Rabada had the dangerous Rohit Sharma caught by Heinrich Klaasen for a duck with the last ball of the first over.
That brought Indian captain Kohli to the wicket to join Shikhar Dhawan.
The pair started slowly but soon began to gain momentum and were particularly harsh on debutant Lungi Ngidi.
Proteas captain, Aiden Markram rung the changes at regular intervals but Kohli and Dhawan remained relatively untroubled pushing the run-rate up to around 6 runs per over with ease.
Dhawan went to his 50 first, reaching the milestone off just 42 balls.
Kohli was a little more circumspect, taking 64 balls to register his 46th half-century in ODI cricket.
Markram then turned to a twin spin attack with JP Duminy joining Imran Tahir in an attempt to stem the runs.
And Duminy, recognised as a partnership breaker, struck twice during his spell, first removing Dhawan for a well played 76 off 63 balls after a brilliant catch by Markram at mid-wicket.
He then added the wicket of Ajinkya Rahane who skied a catch to Andile Phehlukwayo.
Rahane scored 11 and India were suddenly in a little bit of bother at 160 for 4 in the 28th over.
The visitors chose to promote Hardik Pandya above MS Dhoni and after he smashed Duminy for a straight six, it seemed that the experiment might bring success. Chris Morris, brought back into the attack, soon accounted for Pandya's wicket as the all-rounder chose to chase a wide delivery only to be caught behind for 14 leaving India 188/4 in the 33rd over.
Unfazed, Kohli continued to accumulate runs at a steady pace, going to his century in the 40th over off just 120 balls. This was the Indian captain's 34th ODI ton and his third against South Africa.
With 10 overs left and India on 221/4, the visitors were well set for a score over 300.
The Proteas, however, struck again in the 42nd over when Tahir had Dhoni caught on the long-on boundary by Ngidi for 10 off 22 balls.
And for the first time in the series, South Africa had done significant damage to the Indian top order.
Phehlukwayo was the next Proteas bowler into the act, removing Kedar Jadhav, caught behind by Klaasen for just 1 as India slipped to 236/6 in the 43rd over.
Bhuvneshwar Kumar joined Kohli and the pair added 67 runs for the eighth wicket, with Kumar once again showing his batting prowess.
Kohli went to his 150 in the last over of the innings, with the milestone coming off 157 balls with 11 fours and a six.
After Kohli hit Rabada for a six and a four off the final two balls of the innings, India reached 303 for 6 in their allotted 50 overs.
Kohli ended on 160 not out off 159 balls.
Rabada with 1/54, Duminy with 2/60 and Morris with 1/45 were the pick of the Proteas' bowlers.