Chennai - Virat Kohli smashed 138 off 140 balls to lift India to 299-8 in theit must-win fourth one-day international against South Africa in Chennai on Thursday.
Kohli struck six boundaries and five sixes in his 23rd one-day hundred after India won the toss and elected to bat in the day-night match at the Chidambaram stadium.
With the series standing at 2-1 in favour of the Proteas, Mahendra Singh Dhoni's men need a win to stay afloat in the five-match series.
It was Kohli's first century in one-day cricket after 13 innings since scoring a match-winning 107 against Pakistan in the World Cup match in Adelaide in February.
Left-hander Suresh Raina overcame his poor run of 3, 0, 0 in the previous three matches to score 53 off 52 balls and share a fourth-wicket stand of 127 with Kohli.
South Africa claimed five wickets for 33 runs to restrict the scoring at the end after India were cruising at 266-3 in the 45th over.
Fast bowlers Dale Steyn and Kagiso Rabada picked up three wickets each.
South Africa got off to a flying start by removing openers Rohit Sharma and Shikhar Dhawan by the eighth over to reduce India to 35-2.
Ajinkya Rahane joined Kohli to retrieve the situation with a 104-run partnership for the third wicket, before Steyn separated the pair.
Wicket-keeper Quinton de Kock, who had taken a superb diving catch down the leg side to remove Dhawan, also picked up an inside edge off Rahane who made 45.
Kohli reached his century by lofting left-arm spinner Aaron Phangiso for a straight six in the 38th over, but managed just 38 runs in the next 10 overs against steady bowling by the Proteas.
India retained the same side which lost the previous match in Rajkot, while South Africa were forced to make two changes due to injuries to all-rounder JP Duminy and fast bowler Morne Morkel.
They were replaced by fast bowler Chris Morris and Phangiso.
The match was officiated by Indian umpires at both ends after the International Cricket Council withdrew Aleem Dar of Pakistan for the last two games in Chennai and in Mumbai on Sunday due to security concerns.
The right-wing Shiv Sena party, known for its anti-Pakistan stand, had threatened to stop Dar from umpiring in the Mumbai match.