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.
|Ceballos: No issue with former Real Madrid boss Zidane|
|MLS Review: Martinez equals single-season goalscoring record|
|Astros avoid sweep with win over Athletics|
|Seppi advances, Paire exits Winston-Salem|
|Bale feeling good as Madrid eye sweep of trophies|
|You can´t leave a house three-quarters built – Neville urges United to back Mourinho|
|Dodgers slugger Machado leaves game after being struck by pitch|
|Harden says Carmelo will ´be a good fit´ for Rockets|
|Morata: I never considered Chelsea exit|
|Gavrilova kicks off title defence in New Haven|
|Lopetegui pleased with Bale and Real Madrid after LaLiga opener|
|It´s a very special moment – Djokovic revels in Golden Masters achievement|
|Sorrentino thanks Ronaldo for support after injury|
|Twins place Santana on DL with finger injury|
|Yankees´ Gregorius suffers ´pretty significant´ heel bruise|
|Snedeker ends PGA Tour drought with Wyndham Championship win|
|Spalletti unconcerned despite Inter´s underwhelming start|
|Djokovic makes history with Masters clean sweep in Cincinnati|
|Real Madrid 2 Getafe 0: Bale gives Lopetegui first LaLiga win|
|IndyCar driver Wickens taken to hospital after crash|
|Sherman calls for NFL to scrap ´idiotic´ helmet rule|
|Sassuolo 1 Inter 0: New-look Nerazzurri given early reality check|
|Hughton: Shock United win does not alter scale of Brighton´s task|
|Navas keeps place as Courtois waits on Madrid debut|
|Ndidi signs long-term Leicester City contract|
|Pandya tears through feeble England to put India in command|
|Alonso creates motorsport history with victory at Silverstone|
|Kovacic: Chelsea and Sarri believe in me|
|Brighton loss a big lesson for United – Pogba|
|Mistakes hit United´s confidence - Mourinho|
|Brighton and Hove Albion 3 Manchester United 2: Murray lifts Seagulls to another win over Mourinho|
|Quickfire Moon treble sets up Rhinos win|
|Manchester City celebrate win with Silva´s son|
|Brentford 2 Sheffield Wednesday 0: Maupay stars as Bees buzz by Owls|
|Guardiola delighted with fit and firing Aguero|
|Waring marks 200th event with maiden title in Gothenburg|
|Guardiola dismisses Mourinho´s ´disrespectful´ accusation|
|Hulkenberg proud to survive in F1´s pay driver era|
|It´s here, it´s real, get on with it - Dyche dismisses Europa League excuse|
|Grujic agrees Liverpool extension, joins Hertha on loan|
|Martial starts as Lukaku, Young return for Manchester United|
|Fury-Wilder to be staged in November or December - Warren|
|Manchester City 6 Huddersfield Town 1: Aguero hits hat-trick as champions triumph|
|Burnley 1 Watford 3: Hornets end away day woes as Deeney leads destructive display|
|McFarland cleared to leave Scotland and join Ulster|
|Simeone wants ´only the best´ for Filipe Luis amid PSG links|
|PSG signing Boateng rated ´50-50´ by Bayern president|
|Cipriani a positive influence, insists Gloucester head coach|
|Bayer Leverkusen´s Bailey signs contract extension|
|Jesus and Aguero start for City as Mahrez misses out|
|Federer unsure what to expect from Djokovic duel|
|Chievo goalkeeper suffers broken nose, whiplash in Ronaldo collision|
|Simmons lauds influence of ´big brother´ LeBron|
|PSG´s Cavani selected by Uruguay as Coito fills in for Tabarez|
|Starc leads tributes after ´leader of the pack´ Johnson retires|
|Hazard confirms he is staying at Chelsea this month|
|Liverpool´s Firmino dreaming of Premier League title glory|
|Raiders rock the Roosters as NRL´s top-four battle hots up|
|Erasmus demands improved Springboks|
|Athletics pull even with Astros in AL West|
|Mercurial quick Johnson retires from cricket|
|MLS Review: Royer leaves it late for Red Bulls, Dallas bounce back|
|Crotty concussed, Folau injured|
|DFB president Grindel sorry Ozil felt ´deserted´|
|Busch picks up first win of season in Night Race|
|NASCAR results at Bristol: Kurt Busch picks up first win of season in Night Race|
|Woakes welcomes back ´big-game player´ Stokes|
|´Genius´ Messi still amazes Valverde|
|All Blacks, Springboks await Namibia at Rugby World Cup|
|Federer to face Djokovic after Goffin withdraws|