Virat Kohli's second successive hundred was not enough as South Africa, aided by Aiden Markram's century, chased down a target of 359 to clinch a four-wicket win and level their one-day international (ODI) series 1-1 on Wednesday.
India, who lost openers Rohit Sharma and Yashasvi Jaiswal in the first 10 overs, regained their footing when Kohli (102) and Ruturaj Gaikwad (105) added 195 runs for the third wicket, before an unbeaten stand by captain KL Rahul (66) and Ravindra Jadeja helped them post 358-5 in Raipur.
Markram (110) scored his fourth ODI hundred in 88 balls, forming crucial partnerships with captain Temba Bavuma (46) and Matthew Breetzke (68), before Dewald Brevis (54) scored a swift fifty as South Africa inched towards their target.
Tony de Zorzi added a quick 17 runs from 11 balls before he was forced to retire with a hamstring injury, but Corbin Bosch and Keshav Maharaj guided the visitors with four balls to spare, achieving South Africa's third-biggest successful ODI run chase.
The decisive third match of the series will be played in Visakhapatnam on Saturday.

Norway turn World Cup heartbreak into celebration as huge crowds pack capital
Ex-Croatia head coach Slaven Bilic returns to role
India beat England in historic first women's Test at Lord's
Sinner beats Zverev to retain Wimbledon title after marathon battle
Conor McGregor's knee 'never an issue' ahead of UFC 329, says coach