Virat Kohli's record-extending 52nd one-day international century laid the groundwork for India's 17-run win over South Africa on Sunday, getting the hosts off to a winning start in their three-match series after the visitors swept the tests last week.
Former captains Kohli and Rohit Sharma, who have retired from tests and Twenty20 internationals, delighted the Ranchi crowd with a 136-run partnership for the second wicket, helping India set a target of 350 that got them the victory despite Corbin Bosch's heroic last-wicket stand for the visitors.
"It's always fun to watch them play like that, play with that freedom... put oppositions under pressure, make them look silly at times and just show the world why they are who they are," Indian captain KL Rahul said.
India were put to bat after losing their 19th ODI toss in a row, and Yashasvi Jaiswal (18) departed in the fourth over, making way for Kohli. After Tony de Zorzi dropped Sharma in the same over, the veteran duo made few mistakes.
Sharma (57) hit spinner Prenelan Subrayen (0-73) for back-to-back sixes before completing his fifty in 43 balls, his third half-century in a row. He fell lbw to Marco Jansen (2-76), whose ball kept low and hit Sharma's hind leg in front of the stumps.
Ottniel Baartman (2-60) dismissed Ruturaj Gaikwad and Washington Sundar soon after, leaving India on shaky ground at 200-4.
But Rahul (60) helped Kohli steady the ship as the two added 76 runs for the fifth wicket until Kohli mis-timed an effort to hit it over extra cover, and Ryan Rickelton ran in to take the catch with a dive.
Kohli's player-of-the-match knock of 135 from 120 balls, which included seven sixes and 11 fours, gave Rahul and Ravindra Jadeja (32 off 20) the stability they needed to hammer away, as India added 72 runs in the last seven overs to post 349-8.
Yadav takes four wickets
South Africa got off to a terrible start with Harshit Rana sending back Ryan Rickelton and Quinton de Kock for ducks, before Arshdeep Singh got Aiden Markram (7) to edge it to keeper Rahul in the fifth over to make it 11-3.
But Matthew Breetzke (72) and Marco Jansen (70 off 39) got South Africa back in the game, getting them to 227-5 before Kuldeep Yadav (4-68) got them both out in the 34th over.
South Africa needed 50 to win from the last six overs with two wickets left, but the Indian bowlers did not allow Corbin Bosch and Nandre Burger a single boundary for the next two overs, forcing Burger to risk it with a big swing that got him caught by Rahul.
Bosch (67 off 51) completed his maiden fifty but his stand ended in the last over when he got caught trying to hit big, ending South Africa's innings at 332.
The two teams face off again on Wednesday in Raipur.