Kohli made 160 not out from 159 balls as India, who had been put into bat, posted 303 for six in their 50 overs, before restricting their hosts to 179 all out to take a 3-0 lead in the series.
India captain Virat Kohli continued his excellent recent form by smashing a sparkling unbeaten century to lead his side to a comprehensive 124-run victory over South Africa in the third One-Day International at Newlands on Wednesday.
Kohli made 160 not out from 159 balls as India, who had been put into bat, posted 303 for six in their 50 overs, before restricting their hosts to 179 all out to take a 3-0 lead in the series.
South Africa’s brittle batting line-up, without injured stalwarts Faf du Plessis, AB de Villiers and Quinton de Kock, were stifled once more by the Indian spinners as Kuldeep Yadav, who took career-best figures (4-23 in 9 overs), and Yuzvendra Chahal (4-46 in 9 overs) strangled their innings.
The fourth match will be played at the Wanderers in Johannesburg on Saturday.
The imperious Kohli now has four centuries in his last six 50-over innings. He survived being given out leg before wicket to Kagiso Rabada before he had scored when a review showed he had got the faintest of edges to the ball.
After that he was sublime as he put on 139 for the second wicket with Shikhar Dhawan (76 from 63 balls) to lay the platform for India’s sizeable score.
"You're always looking for someone to bat until the end and it's amazing if you do it as the captain," Kohli said at the post-match presentation.
"I was cramping towards the end but I knew I had to stay until the end to get us to 300. These are the times you're tested mentally as well as physically."
When South Africa captain Aiden Markram (32) and innings top-scorer JP Duminy (51) put on a rapid 78 for the second wicket, the hosts were given hope.
Yet the introduction of the excellent Chahal and Yadav, who took eight wickets for 69 runs between them, pegged the innings back.
Yadav had Markram stumped by MS Dhoni and Chahal ripped through the middle-order, including the wicket of debutant Heinrich Klaasen (six).
Dhoni’s stumping of Markram took him to 400 ODI dismissals, the first Indian wicket-keeper to reach that mark.
"Everything is disappointing about this. Yet again we were not up to the mark. We've only got ourselves to blame, we have to try harder," Markram said.
"We've come across them (the spinners) before and if after all that time we're still struggling to pick them, it speaks of their quality."