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.
|Who is Luka Jovic? The Bundesliga goal machine linked with Barcelona|
|Antetokounmpo´s Bucks edge Celtics to extend lead in Eastern Conference|
|Durant blocks Kings rookie Bagley five times in one half|
|CONCACAF Champions League Review: Atlanta beaten in De Boer´s first competitive game|
|Kucherov notches second straight 100-point NHL season|
|Del Potro into Delray Beach quarters, Kyrgios exits|
|Sarri: Chelsea´s season better than Arsenal´s|
|Padres confirm Machado´s 10-year, $300m deal|
|Williamson diagnosed with grade one knee sprain|
|Vidic: Solskjaer a better fit than big-name managers for United|
|Giroud issues EFL Cup warning after Chelsea´s Europa League win|
|McIlroy leads in Mexico, Woods shoots 71|
|Romero edges into lead in Puerto Rico|
|City out to make history against Chelsea - Silva|
|We were sweet enemies - Mourinho salutes old rival Wenger|
|Inter improvement not down to Icardi absence - Spalletti|
|This Week in US Sports: Manny Machado finds a home, Williamson gets hurt|
|Sarri rubbishes Roma rumour|
|Halep takes positives despite Dubai defeat|
|Reigning champion Van Uytvanck progresses in Budapest|
|Brough stars for Wakefield on milestone outing|
|Serbia progress in the balance with one game to go|
|DeMarcus Cousins blasts college basketball after Zion Williamson injury|
|UEFA explains ´technical issue´ behind Schalke-City VAR delays|
|Coric, Verdasco humbled in Open 13|
|Inter 4 Rapid Vienna 0 (5-0 agg): Nerazzurri cruise into Europa League last 16|
|Chelsea 3 Malmo 0 (5-1 agg): Sarri´s side stroll into last 16|
|Halep out, Kvitova dominant in Dubai|
|Marotta ´very optimistic´ Godin will join Inter|
|Emery praises Arsenal´s game management after European progress|
|Valencia 1 Celtic 0 (3-0 agg): Toljan sent off as Bhoys crash out|
|Arsenal 3 BATE 0 (3-1 agg): Emery´s men ease through|
|Woods to skip Honda Classic, play Arnold Palmer Invitational|
|Sarri recalls Hudson-Odoi for Malmo match|
|Silverwood in line for England job|
|WATCH: Norwegian goalkeeper scores stunning free-kick|
|Bencic ends Halep´s Dubai dreams|
|Playing conditions confirmed for The Hundred, reveals ECB|
|Manchester City fan suffered ´traumatic brain injury´ in alleged assault|
|Afghanistan too strong for Ireland in T20 opener|
|History-chasing Sri Lanka edge Proteas on day one|
|Tottenham an ´exciting and brilliant´ team, says Kanoute|
|Klopp fined £45,000 referee comments|
|Mourinho to analyse Clasico for beIN SPORTS|
|Ronaldo has won three Champions Leagues, not five – Atletico president Cerezo hits back at Juventus|
|Greatest Wales side ever? Not in my book, says Gatland|
|FA charge Millwall over racist chanting|
|Saiss signs new Wolves deal|
|Klopp impressed by Solskjaer´s ´brilliant job´ at United|
|De Jong excited to join ´greatest ever´ Messi at Barca|
|Gattuso ´not building anything´ at AC Milan|
|Manchester City fan in critical condition after alleged assault following Schalke game|
|Kovac wants repeat of Bayern´s defensive efforts|
|Semenya sets record straight over government funding for IAAF case|
|Tottenham´s Kane to be assessed ahead of Burnley clash|
|McIlroy to skip Irish Open|
|England rest Stokes and Buttler for Windies T20s|
|Lambert given two-game touchline ban after East Anglian derby fracas|
|Gatland puts faith in Anscombe to face England|
|PSG terminate Diarra contract|
|Nantes grant Cardiff extension over Sala payment, Warnock confirms|
|Horne replaces Russell for injury-hit Scotland in Paris|
|Eriksen´s agent ignoring transfer speculation|
|Moon and Nowell to start for England against Wales|
|PSG announce new shirt sponsor|
|Hearn expects Joshua-Usyk fight in 2020|
|Van Dijk wants to be a ´legend of Liverpool´|
|India lose Pandya for Australia T20s and ODIs|
|KNVB postpones Ajax game to boost Real Madrid preparations|
|Tigers land Rabbitohs flyer Jennings|