Virat Kohli struck his first one-day international century since the Cricket World Cup in February to lead India to a series-levelling 35-run victory over South Africa in Chennai.
Kohli made a fluent 138, his third-highest knock in 165 ODIs, to steer the hosts to an imposing 299 for eight in the fourth match of the five-game series.
South Africa replied with 264 for nine, AB de Villiers top-scoring with 112 off 107 balls, as India tied the series at 2-2 ahead of the deciding fifth match in Mumbai on Sunday.
Kohli's 138 came off 140 deliveries and featured six fours and five sixes including one off Aaron Phangiso to bring up his 23rd ODI hundred and his first against the Proteas.
The Indian batsman shared two century partnerships, the first with Ajinkya Rahane (45) and the second with Suresh Raina (53) who bounced back to form after making ducks in his two previous matches.
Dale Steyn and Kagiso Rabada were the pick of the South African bowlers, taking three wickets each.
"It always feels good when you get a century and the team wins," Kohli said. "I told (De Villiers) in the dressing room my heart was in my mouth when he was batting.
"He plays unbelievable shots. He's a very modest man, too, never praises himself, so I'll do that for him. The credit goes to him. He fought it out."
Quinton de Kock got South Africa's reply off to a flying start when he blasted 43 off 35 balls but his departure left De Villiers to fight a lone hand.
Like Kohli, the South African captain brought up his ton with a six, off Amit Mishral.
It was his 22nd ODI hundred, a record for a South African, but was not enough to get his team over the line after he fell to Bhuvneshwar Kumar who scooped up the last three wickets to finish with three for 68.
"We had a great opportunity to clinch the series," De Villiers said. "It was a hard-fought game and I loved the way the boys fought till the end."