Cape Town - A century from Rohit Sharma saw India to a respectable 274/7 after their allotted 50 overs in the 5th ODI at St George's Park in Port Elizabeth.
LIVE: Proteas v India, 5th ODI, Port Elizabeth
After a slow start, in which only five runs were scored off the first three overs, Shikhar Dhawan and Sharma began to hit their straps.
Dhawan, in particular, quickly found the pace of the pitch to his liking and rushed to 34 off just 23 balls, including eight boundaries before he was caught on the square leg boundary by Andile Phehlukwayo off Kagiso Rabada.
Indian captain and batting kingpin, Virat Kohli strode to the wicket with his side on 47/1 in the 8th over.
Together with Sharma, Kohli, who was unusually subdued, put on 105 for the second wicket, with the Indian captain only contributing 36 off 54 balls before he was run-out by JP Duminy.
Sharma, who by this time had scored a fluent 77 was joined by Ajinkya Rahane.
Again, it was a run out that broke the partnership of 23 runs with Rahane the victim for just 8 off 18 balls and India on 176/3 in the 32nd over.
Shreyas Iyer joined Sharma who, after he was dropped on the boundary by Tabraiz Shamsi on 96, went to his 17th ODI century off 107 balls.
At 203/3 in the 36th over, India were well set for a score of close to or over 300.
Lungi Ngidi, had other ideas, however.
On his return to the attack, the big fast bowler struck two vital blows, removing Sharma for 115 and Hardik Pandya for a first-ball duck to leave India at 246/5 in the 43rd over.
MS Dhoni, just 46 runs shy of 10 000 ODI runs, successfully negotiated the hat-trick delivery.
And the man from the Titans was not finished.
In his next over he claimed the wicket of the dangerous Shreyas Iyer, caught behind by Heinrich Klaasen for 30, leaving India on 240/6 with 5 overs left in their innings.
Ngidi struck again in the 48th over, removing Dhoni for 13 off 17 balls as India struggled to accelerate their innings.
India ended on 274/7, a few shy of where they perhaps thought they would end up, largely thanks to Ngidi's heroics.
He was the pick of the bowlers for the home side, ending on 4/54 in his 9 overs.