After being sent in by South Africa skipper Aiden Markram, India openers gave a good steady start with Dhawan and Rohit Sharma adding 48 runs before Kagiso Rabada got the better of the left-hander in the eighth over.
Dhawan hit eight boundaries during his 34 run cameo off 23 balls.
Rohit and Kohli then maintained the early momentum and took India to 100 run mark in 17.1 overs.
After a cautious start , Rohit opened up by hitting two sixes, one each off Rabada and Ngidi, as he reached his first fifty of the series.
While Rohit was scoring in a brisk pace, Kohli was surprisingly slow by hitting just one four in his first 52 balls.
And the introduction of spinners, JP Duminy and Tabraiz Shamsi, slowed down India’s scoring rate in the middle overs.
Just when Kohli was set for a big one, a miscommunication between him and Rohit saw the India skipper back to the pavilion.
Kohli scored 36 off 54 balls, which included just two boundaries, but added 105 runs for the second wicket with Rohit in 18.1 overs.
It was the seventh time, Kohli and Rohit are involved in a run out and the current skipper was the victim in five occasions.
India lost another wicket to run out when Ajinkya Rahane (8) was sent back by Rohit while going for a quick single. With that, India lost two wickets for 23 runs in 6.2 overs.
Along with young Iyer, Rohit stabilised the innings and reached his 17th hundred off 107 balls. The duo added a valuable 60 runs for the fourth wicket in 10.3 overs.
Lungi Ngidi scalped centurion Rohit Sharma and allrounder Hardik Pandya in consecutive balls, in a maiden 43rd over, to put a brakes on India’s run scoring.
Ngidi then removed Iyer 30 runs and dismissed Dhoni for 13 runs in the penultimate over of the match.
After a good start in their chase, Proteas lost wickets of AB de Villiers, JP Duminy and Aiden Markram.
Markram was in good nick and scored 32 off 32 balls which included a six and four boundaries.
The Proteas skipper also put on 52 runs for the opening wicket with Amla, before giving a simple catch to his counterpart Virat Kohli at mid-off off Bumrah in the tenth over.
Seven balls later, Pandya dismissed Duminy in his first over, before getting the big wicket of de Villiers in the second. South Africa were reduced to 65/3 in 12.5 overs from 52/0 in 9.3.
Amla and David Miller then rescued the South African run chase by adding 62 for the fourth wicket. Miller (36 off 51 balls), while trying to increase the tempo, was clean bowled by Chahal in the 27th over.
But unlike at Wanderers, South African batsmen found it tough to negotiate Yadav and Chahal.
Amla continued to keep South Africa in the hunt and scored his 35th ODI fifty off 72 balls, by hitting three fours.
He added 39 for the fifth wicket with Heinrich Klaasen, but his long vigil ended in an unfortunate way beaten by Pandya’s direct hit. And it ended South Africa’s hopes for a comeback in the match.
India finally won an ODI series in South Africa.
The visitors defeated the Proteas by 73 runs in the fifth one-day international at the St George’s Park in Port Elizabeth on Tuesday, to take a 4-1 lead in the six-match series.