Rohit Sharma inspired India to a victory over South Africa and a series win that ensures they will leapfrog the Proteas and go top of the one-day rankings.
India had already clinched at least a share of the six-match series as they went into the penultimate ODI in Port Elizabeth holding a 3-1 lead, and they duly continued their dominance in a 73-run win.
Having been put into bat India owed a debt of gratitude to Rohit for pushing them to 274-7 with 115 off 126.
Hashim Amla (71) and Heinrich Klaasen (39) gave the Proteas hope, but the run out of the former proved a key moment in the game and when Klaasen fell to the excellent Kuldeep Yadav the writing was on the wall.
India will now look to finish with a flourish in the series finale in Centurion on Friday.
BREAKING: India will finish the #SAvIND ODI series as the number one side in the @MRFWorldwide ICC ODI Rankings after taking a 4-1 series lead with victory in Port Elizabeth!https://t.co/1oA76LNlyI pic.twitter.com/xNpiqW6kFC— ICC (@ICC) February 13, 2018
Shikhar Dhawan got India's innings off to a quick start as he struck 34 off 23 balls in his opening partnership of 48 with Rohit, striking eight fours before he pulled Kagiso Rabada to deep square leg.
Rohit duly picked up where Dhawan had left off, contributing 62 off only 55 deliveries in a second-wicket stand of 105 with Virat Kohli, who was on 36 when he was run out by JP Duminy.
Kohli's dismissal came as a result of Rohit refusing to run and Ajinkya Rahane (8) went in similar fashion as India's centurion was caught ball-watching.
But Rohit, dropped on 96 by Tabraiz Shamsi, made up for those mental errors as he brought up his first hundred in South Africa with a flick past backward square leg.
Rohit eventually fell to Lundi Ngidi (4-51), who had Hardik Pandya for a duck next ball, but Bhuvneshwar Kumar (19 off 20) helped push India to a total that proved well beyond South Africa.
Aiden Markram went for a run-a-ball 32 as he combined for 52 opening runs with Amla, who found little in the way of support as Duminy (1) and AB de Villiers (6) both failed.
Amla, who hit just five boundaries in a workmanlike 92-ball stay, looked to have found a match-winning partner in Klaasen, but an extremely tight direct hit run out review went against him and sparked a Proteas collapse.
Kuldeep then removed Andile Phehlukwayo and Rabada and all hope went when the same bowler had Klaasen stumped as India dethroned South Africa as the top team in the 50-over game.
|Neymar insists Barcelona and Real Madrid links not ´concrete´|
|England trio Nowell, Slade and Cowan-Dickie sign fresh Exeter deals|
|Windies coach Pybus not distracted by detractors|
|Barcelona 3 Leganes 1: Messi and Suarez combine to spare Barca´s blushes|
|I´m sure Michael would be extremely proud - Vettel hails Mick Schumacher|
|Young plays down injury fears for England trio Launchbury, Shields and Hughes|
|Pochettino: Lucas Moura fit for Chelsea clash|
|Ranieri positive on Fulham survival chances despite ´unbelievable´ Spurs loss|
|United Arab Emirates v Kyrgyzstan: Zaccheroni confident in attack|
|South Korea lose Ki to hamstring injury|
|It doesn´t look great - Pochettino to wait on Alli assessment|
|Messi benched as Barcelona face Leganes|
|Dalglish texts me before matches - Van Dijk|
|Patrick Mahomes could sign NFL´s first $200m contract - reports|
|Iran 2 Oman 0: Jahanbakhsh and Dejagah secure last-eight spot|
|Helloooo u remember me? Nkoudou reminds Spurs fans he exists|
|Japan v Saudi Arabia: Pizzi believes Saudis can upset the odds|
|Repsol Honda´s Lorenzo to have surgery on fractured wrist|
|Fulham 1 Tottenham 2: Winks heads late winner after Alli injury|
|Leinster seal home quarter-final with win over Wasps|
|Vince, Curran star as Sixers trounce Heat to move second|
|Sharapova stunned by Barty as Kvitova takes Anisimova to school|
|Guardiola demands improvement after Man City win|
|Sexton has bat phone to referees - Jones|
|Alonso accepts Chelsea guilty of ´silly mistakes´ in Arsenal defeat|
|Guardiola woke us up - Sane reveals half-time rocket for Man City|
|A first step to something bigger - Tsitsipas eyeing glory after shocking Federer|
|Thailand 1 China 2: Gao Lin keeps dream alive for Lippi|
|Tsitsipas in dreamland after ousting Federer, birthday boy Tiafoe breaks new ground|
|Huddersfield Town 0 Manchester City 3: Danilo, Sterling and Sane on target for ton-up City|
|Allegri: Khedira will be like a new signing for Juventus|
|Manchester City reach 100 goals in 2018-19|
|Australia v Uzbekistan: Leckie´s return is ´like a new signing´, says Arnold|
|Jordan 1 Vietnam 1 (aet, 2-4 on penalties): Keeper Van Lam the shoot-out hero|
|Federer confirms French Open return after Melbourne exit|
|I accept his decision - Gattuso axes Chelsea-bound Higuain|
|The rapid rise of Federer-conqueror Tsitsipas|
|Gracious Federer hails ´better player´ Tsitsipas after Australian Open exit|
|Tsitsipas ´happiest man on earth´ after stunning Federer|
|Harden focused on wins, not personal feats after scoring 48 points|
|PSG midfielder Verratti suffers sprained ankle|
|Inspired Tsitsipas dethrones Federer|
|PSG´s Cavani considering career finale in Uruguay|
|Feisty Collins ready to make more noise after thrashing Kerber|
|I´ve got to work on my soccer skills! - Mavs´ Doncic didn´t know ejection rule|
|Lakers won´t rush LeBron & Rondo back despite Ball injury|
|A-League Review: Victory fightback in thriller with Wellington|
|Henry explains foul-mouthed confrontation with Strasbourg´s Lala|
|Nadal wary of ´dangerous´ Tiafoe|
|Emery ´not positive´ over Bellerin injury|
|Harden scores 48 points as Rockets rally past Lakers in OT|
|Pacquiao wants Mayweather rematch after beating Broner|
|Sharapova unimpressed with questions after Melbourne exit|
|Nadal outclasses Berdych en route to quarters|
|Collins trounces 2016 Aus Open champion Kerber|
|Sanchez: Man United thriving thanks to Solskjaer|
|Sharapova crashes out of Australian Open|
|Devils´ Palmieri replaces Hall on NHL All-Star roster|
|Tuchel stunned by PSG´s nine-goal thrashing of Guingamp|
|Modric wants to extend Real Madrid stay|
|Marotta: Icardi will re-sign, Godin wants Inter|
|´F*** no!´ - Westbrook on if he´s cool with Embiid|
|Mickelson shoots 66 to stay ahead at Desert Classic|
|Real Madrid? You never know what the future holds - PSG´s Mbappe|
|Inter lacked quality in disappointing Sassuolo draw - Spalletti|
|Walton has one goal for Lakers-Rockets matchup: Keep Harden under 50 points|
|CAF Champions League Review: Simba learn Vita lesson as Sundowns find form|
|Bayliss relishing pressure of World Cup and Ashes to finish England reign|
|Guardiola keen to keep City rhythm and challenge on four fronts|
|Fifita backs Johnson to inspire the Sharks|