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.
|Benitez: Winning Champions League changed my life|
|Brewers extend Diamondbacks´ losing streak to six|
|Weidenfeller bids farewell in Schmelzer´s last game as Dortmund captain|
|Owen surprised by Zidane success|
|Rockets break Warriors´ 16-game home postseason win streak|
|Bennett keen to see out contract as Broncos target Bellamy|
|Copa Libertadores Review: Silva helps Cruzeiro into last 16|
|Chargers tight end Henry suffers torn ACL|
|WATCH: Harden dunks all over Green|
|Madrid are linked to 50 players – Ronaldo laughs off Neymar rumours|
|Giants sign wide receiver Shepard|
|Salah wouldn´t improve Real Madrid – Del Bosque|
|Stevens says Tatum should´ve been unanimous All-Rookie First Team selection|
|Rodgers on Bryant: If he ends up here, we´ll welcome him|
|Jets´ Hackenberg dealt to Raiders for 2019 conditional pick|
|Mets sign Bautista, start him same day|
|Warriors´ Iguodala ruled out for game four|
|Guzman called up as Romero replacement for Argentina|
|Gaya signs new five-year Valencia contract|
|Celta appoint Antonio Mohamed as new coach|
|Klopp: Real Madrid have no weaknesses|
|Strauss ´stepping away´ from England role to support wife|
|Argentina rule Romero out of World Cup|
|Emery´s website appears to confirm Arsenal appointment|
|´Inspiring´ Guardiola has made Fleetwood a better golfer|
|Two trophies in a week! Torres leaves Atletico Madrid in style|
|I died a thousand deaths - Yates set for Giro defensive after time trial|
|Hamsik hints at Napoli exit amid China rumours|
|Rowett swaps Derby for Stoke|
|Thiem comfortable in victory as rain delays Wawrinka|
|Schmelzer gives up Borussia Dortmund captaincy|
|Top seed Stephens struggling at Nuremberg Cup|
|This is the wrong information - Vieira rejects Nice speculation|
|France rest Guirado, recall Thomas for New Zealand tour|
|Warriors´ Iguodala upgraded to questionable for game four|
|Simmons, Mitchell unanimous picks for NBA All-Rookie first team|
|AC Milan referred over alleged FFP breaches|
|F1 Raceweek: Ferrari and Red Bull target Monaco upturn|
|Horoya 2 Mamelodi Sundowns 2: Camara header denies visitors´ comeback|
|Du Plessis rescue mission takes Super Kings to IPL final|
|Seedorf to leave relegated Deportivo|
|Wenger turned down Real Madrid ´two or three times´|
|Kane dreams of lifting World Cup trophy as England captain|
|UEFA opens disciplinary proceedings against Liverpool & Roma|
|Yates stays on course for Giro title, Dennis wins time trial|
|Brighton sign Nigeria international Balogun|
|Ronaldo again pips LeBron and Messi as sport´s most famous star|
|Marcelo fears backlash if Madrid lose Champions League final|
|Messi joins Argentina´s World Cup training camp|
|FIFA finds no doping cases in Russia´s World Cup squad|
|Liverpool´s strikeforce reminds Ronaldo of Real Madrid|
|Hysaj staying at Napoli ´regardless of Sarri´s future´|
|Amir fully fit for Lord´s Test|
|A fast start to life - The Golden Knights and the expansion teams who excelled early|
|Molina gets two-year anti-doping ban for positive test after Joshua bout|
|Ramos: We´re a vintage Real Madrid team|
|Klopp key to controlling Liverpool emotions, says Alonso|
|Bjorn names Westwood, Harrington, Donald and McDowell as Europe vice-captains|
|Scarlets players left wounded by ´shocking´ Scotstoun pitch|
|Arsenal fined £20,000 for Leicester penalty protest|
|Storm offer Bellamy ´significant´ deal amid reported Broncos interest|
|Rashford writes moving tribute on anniversary of Manchester Arena attack|
|Heaton backs Kane´s captaincy credentials|
|Salah deserves Ballon d´Or if Liverpool win Champions League – Owen|
|Wasps flanker Willis out for up to a year|
|Real Madrid v Liverpool: Is the Champions League enough to save Zidane?|
|I was left out on reputation - Nainggolan angered by World Cup snub|
|Pellegrini targets Europe with West Ham|
|Lopetegui extends Spain contract|
|Edinburgh-bound Barclay´s Scarlets career over following Achilles surgery|