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.
12. November 2018
|Djokovic back to brilliant best as Isner is beaten|
|Celta Vigo replace Mohamed with Cardoso after Real Madrid defeat|
|Joshua intrigued by Usyk, says Hearn|
|Ibrahimovic beats Rooney to MLS Newcomer award|
|Rams WR Kupp out for season with torn ACL|
|Sturridge denies ever gambling on football following FA charge|
|Koeman understands De Ligt´s Eredivisie frustrations|
|Jimmy Butler trade: 76ers acquire Timberwolves star in blockbuster deal|
|´Improve your attitude´ - Deschamps issues Dembele warning|
|Sturridge charged with misconduct over alleged breach of betting rules|
|Saints sign Marshall following Bryant injury|
|Mendy suffers knee injury, leaves France squad with Lacazette|
|Zverev beats Cilic in error-strewn London battle|
|Rafinha replaces injured Casemiro in Brazil squad|
|´One-dimensional´ Australia batsmen need work before World Cup - Finch|
|Mancini keen to work with ´incredibly gifted´ Tonali|
|Italian manager of the year Allegri targets long Juve stay|
|Injured Lee departs as Wales prepare squad for Tonga|
|Conte content to wait until June for coaching return|
|Etzebeth set to return, Whiteley a doubt for Scotland Test|
|In-form Verstappen does not need distractions from 2019 challenge|
|FA asks Guardiola to explain Manchester derby referee comments|
|LaLiga MVP Messi hopes the division stays wide open|
|Murray and Henshaw out of All Blacks Test|
|Injured Man Utd duo Pogba and Martial drop out of France squad|
|Modric cannot always be the best - Dalic|
|Very troubling times - LeBron James alarmed by gun violence|
|Bayern confirm Ribery ´altercation´ with reporter|
|Madrid hit by injuries to Nacho and Casemiro|
|Record-breaking Mushfiqur torments Zimbabwe|
|Spartak Moscow appoint Oleg Kononov|
|Rooney predicts ´exciting time´ after being named in MLS Best XI|
|Former England call-up Graham replaces Thomson in Scotland squad|
|Slater and Thurston among Queensland greats to join Maroons staff|
|Rapana set for six months out after shoulder surgery|
|Alves determined to play in the Premier League|
|Rockets GM denies Anthony will be waived|
|Monaco´s plight not Henry´s fault - Silva|
|It´s like the FBI came - River assistant unable to talk to Gallardo during final|
|Norman says Washington home crowds ´just don´t really care´|
|Bucks beat Nuggets to finish gruelling schedule stretch|
|Madrid ´very happy´ with Solari, says Butragueno|
|Titans stun Patriots, Browns upset Falcons|
|Browns´ Chubb relishes record-breaking performance: It definitely is very special|
|MLS Review: Red Bulls, Atlanta to meet in conference finals|
|Neymar wants more from perfect PSG|
|Higuain is feeling a lot of pressure – Gattuso|
|I didn´t insult anyone, says apologetic Higuain|
|Allegri delighted with Juventus response|
|Kyle Busch wins at Phoenix as Harvick, Truex qualify for Championship 4|
|WATCH: Highlights of thrilling Boca-River Copa Libertadores final|
|PSG coach Tuchel demands more despite Monaco thrashing|
|Boca missed too many chances, rues Schelotto|
|Solari remains tight-lipped on Real Madrid future|
|Hamilton not surprised by Verstappen-Ocon collision|
11. November 2018
|Ronaldo fires Juventus to Serie A record|
|Higuain did nothing serious - Ronaldo hopes Milan striker avoids ban|
|Solari completes perfect Real Madrid audition with fourth straight win|
|Verstappen ordered to do public service after Ocon scuffle|
|Nishikori stuns out-of-sorts Federer|
|Fitzgerald overtakes Owens in career receiving yards|
|Monaco 0 Paris Saint-Germain 4: Cavani hat-trick adds to Henry woes|
|Celta Vigo 2 Real Madrid 4: Solari leads Los Blancos to fourth straight win|
|AC Milan 0 Juventus 2: Higuain sent off in horror show|
|Brees leapfrogs Favre on all-time list for touchdown passes|
|Kuchar holds on to seal first title since 2014|
|Nuno proud of Wolves display at Arsenal|
|Jones fastest in NFL to reach 10,000 receiving yards|
|WATCH: Verstappen shoves Ocon after Brazilian Grand Prix collision|
|Boca Juniors 2 River Plate 2: Izquierdoz own goal ensures first leg ends level|