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.
|MLS Review: Galaxy on track for play-offs as Timbers, DC clinch spots|
|Elliott secures win at Hollywood Casino 400|
|Thunder´s Westbrook makes season debut against Kings|
|Saints beat Ravens after Tucker misses extra point|
|Rondo, Paul and Ingram banned after Lakers-Rockets fight|
|Saints QB Brees reaches another historic milestone|
|Biglia: VAR should have checked Nainggolan tackle|
|Gattuso not blaming Donnarumma for derby defeat|
|Seventh in Mexico will secure Hamilton´s fifth world title|
|Rooney fires DC United into MLS play-offs|
|Alonso slams ´amateur´ F1 rivals after latest crash|
|Spalletti fears lengthy Nainggolan absence|
|To the Max! Verstappen destroyed shoe fending off Hamilton|
|Icardi delight after Donnarumma error gives him another derby winner for Inter|
|Guardiola: Versatility the key for Stones|
|Vettel frustrated as mistakes continue to hamper title challenge|
|ECB refutes spot-fixing claims against England players|
|I thought we would do better - Hamilton queries Mercedes strategy|
|Inter 1 AC Milan 0: Icardi settles derby with dramatic late winner|
|Hamilton denied title party as Raikkonen wins in Austin|
|Patriots RB Michel out against Bears with gruesome knee injury|
|Kohli hails Rohit partnership after comprehensive India victory|
|Silva downplays his role after Everton super subs seal victory|
|Injured Bairstow out of final white-ball matches in Sri Lanka|
|Pliskova feeling confident after impressive start in Singapore|
|Big-hitting Imrul rescues Bangladesh in opening ODI|
|Leinster suffer late defeat at Toulouse, Newcastle snatch dramatic victory|
|Chargers pip Titans to dramatic London win|
|Everton 2 Crystal Palace 0: Substitutes Calvert-Lewin and Tosun clip Eagles´ wings|
|Thunderstorms push Andalucia Valderrama Masters into reserve day|
|Edmund masters Monfils to claim maiden singles title|
|Kohli and Rohit fire India to comprehensive ODI win|
|Manchester United didn´t play - David Luiz blasts Mourinho tactics|
|Svitolina out to silence ´haters´ in Singapore|
|Emre Can facing surgery on thyroid problem|
|Tsitsipas claims maiden ATP crown in Stockholm|
|Mariners boss Mulvey knows nothing of Bolt contract offer|
|WATCH: Vinicius Junior scores free-kick - then sees red!|
|Gronkowski ruled out of Bears clash|
|Khachanov enjoys home comforts with comprehensive Kremlin Cup win|
|Isner wants Wimbledon tie-break rule named after him|
|Hummels lauds ´outstanding´ Lewandowski|
|Liverpool´s defensive improvement no accident – Gomez|
|Pliskova overpowers defending champion Wozniacki in Singapore|
|Marquez dislocates shoulder celebrating MotoGP title|
|Henry taking positives from opening Monaco defeat|
|A-League Review: Mariners held as Bolt considers move|
|Dominant Svitolina ends Kvitova hoodoo in Singapore|
|Pereira warns Juventus to expect ´pumped up´ Manchester United|
|D´Antoni backs NBA to ´sort out´ Lakers-Rockets brawl|
|Mixed feelings for champion Marquez after Dovizioso crash|
|Bolt offered contract by Central Coast Mariners|
|Anthony accuses Rondo of spitting after Lakers-Rockets brawl|
|Martial insists he has good relationship with Mourinho|
|Bautista to replace Lorenzo at Phillip Island|
|Emery wanted Lacazette at Paris Saint-Germain|
|Wallabies centre Hodge suffers fractured ankle|
|Koepka claims top ranking with CJ Cup win|
|Dramatic Dovizioso crash gifts Marquez MotoGP title in Japan|
|LeBron´s home debut ends in defeat, Walker makes NBA history|
|Rondo, Ingram and Paul exchange punches in Lakers-Rockets clash|
|Dodgers to face Red Sox in World Series after beating Brewers|
|Valverde doesn´t care about extending Barca contract|
|Qualifying speed a ´positive surprise´ for Ferrari´s Vettel|
|I was in a different headspace – Hamilton revels in Austin pole|
|Barcelona can cope without Messi – Pique|
|Allegri: Juventus abandoned Genoa clash|
|Sale: Hospital visit was because of belly button ring|
|Valverde accepts Barcelona will miss Messi|
|No Messi or Ronaldo in El Clasico for first time since 2007|