India 303 for 6 (Kohli 160*, Dhawan 76, Duminy 2-60) beat South Africa 179 (Duminy 51, Kuldeep 4-23, Chahal 4-46) by 124 runs
Live Scorecard and ball-by-ball details

Virat Kohli ensured India will have some share of the silverware as he took them to unassailable 3-0 lead in the ODI series. Kohli scored his second century in three matches, his third on India's tour of South Africa and more than half India's total of 303 before his bowlers did the rest, or should that be wrist?

South Africa's line-up, riddled with inexperience, was again spun out by Kuldeep Yadav and Yuzvendra Chahal. With eight wickets between them, the pair took their series tally to 21. They have claimed but all but seven of the South African wickets across three matches. Their wickets at Newlands came at a cost just 69 runs, and through the series, they have conceded 190 runs and taken their wickets at an average of 9.05.

The hosts had serious problems, which started when they decided to bowl first on a surface where everything screams bat. Perhaps, it was the knowledge that India fancy themselves to chase just about anything and the ghosts of their previous two batting performances still swirling. But South Africa decided to save their weaker suit upfront and were witness to a Kohli masterclass instead, but not before they had an opportunity to dismiss him for a duck.

After Kagiso Rabada removed Rohit Sharma in the opening over, he had Kohli given out lbw off the third ball of his second over but the India captain reviewed. Replays showed Kohli had hit the ball as he attempted a flick. The on-field decision was overturned and so were South Africa's fortunes.

At the other end, debutant Lungi Ngidi struggled to pull his length back and India's batsmen capitalised. The visitors reached 50 in 10 overs with 40 via boundaries.

Andile Phehlukwayo's opening over, full but wider outside off than Ngidi had been, promised to plug the flow of runs, but he lost his line after that. Morris tried the short ball but with Dhawan well set, only drinks could stop the runs momentarily. India were 87 for 1 after 16 overs.

Imran Tahir was introduced after the interval but Dhawan swept his second ball to the deep square leg boundary to bring up his fifty off 42 balls. Dhawan then swiped the fifth ball to the midwicket boundary to put Tahir under further pressure. Ngidi's second spell went significantly worse than his opening one. His first four overs cost 29 runs and his next two 18 to leave Aiden Markram with no choice but to turn to JP Duminy.

While offspin is meat and drink to India's line-up, Duminy was able to toss the ball up and slow it down and it brought some results. He had Dhawan chipping a catch to short midwicket in his second over to end a 140-run second-wicket stand that came at 6.31 runs an over. Five overs later Ajinkya Rahane was beaten in flight as he stepped out and holed out to long-off.

South Africa established something of a squeeze between the 20th and 40th over, in which they conceded 105 runs but Kohli was there throughout, accumulating steadily. In all, 100 of his 160 came through singles, twos, and threes. He had brought up his 34th ODI hundred off 119 balls when he nudged a double to fine leg.

Duminy completed a full quota of 10 overs for the first time since July 2013, and only the fifth time in his 182-match ODI career, returning 2 for 60.

India entered the final 10 overs on 223 for 4 and despite Tahir and Phehluwayo's dismissals of MS Dhoni and Kedar Jadav respectively, Kohli accelerated. He brought up 1000 ODI runs against South Africa, 150 of 157 balls and helped India score 47 off the final five overs to top 300.

A target so steep demanded something much more than South Africa have offered so far and the early loss of Hashim Amla only made it tougher. Amla was deep in the crease when he missed a Jasprit Bumrah ball that slanted in from off stump and struck him on the pad. He considered a review but eventually decided against it and left Markram to lean on Duminy instead.

A 78-run stand followed with glimpses of promise from Markram and maturity from Duminy, who went on to score his first fifty in 21 ODIs, since October 2016, but the pair only kept South Africa in the chase for a short while. Once Markram was stumped off Kuldeep, South Africa's soft underbelly was exposed.

Heinrich Klaasen then missed a flick and was out lbw to Chahal and 15 balls later, Duminy went the same way, struck in front of leg stump. With the asking rate mounting, David Miller heaved and was caught behind off Bumrah to leave South Africa 129 for 5. They lost their last five wickets for 50 runs and may now look to a change in personnel ahead of the next three games. South Africa will announce the squad for the remainder of the series on Thursday with AB de Villiers expected to return from a finger injury.

Firdose Moonda is ESPNcricinfo's South Africa correspondent