Shikhar Dhawan smashed 137 off 146 balls as defending champions India whipped mighty South Africa by 130 runs to step closer to a quarter-final berth in the World Cup on Sunday.
A boisterous crowd of 86,876 at the Melbourne Cricket Ground saw India pile up 307 for seven after electing to bat and then bowl out the Proteas for 177 with almost 10 overs to spare in the day-night Pool B match.
Faf du Plessis top-scored with 55 but India made regular dents in the South African batting, with off-spinner Ravichandran Ashwin taking three wickets and seamers Mohammad Shami and Mohit Sharma sharing four wickets.
With two wins from as many games - India defeated arch-rivals Pakistan by 76 runs last Sunday - Mahendra Singh Dhoni's men will move into the quarter-finals if they beat the unfaniced United Arab Emirates in Perth on February 28.
South Africa, one of the pre-tournament favourites who beat Zimbabwe in their first match, have two points from as many games.
Dhawan, the left-handed opener who resides in Melbourne with his British-Asian wife Ayesha and three children, hit 16 boundaries and two sixes during his seventh one-day international century.
All his seven hundreds have come in a winning cause, but it was the confident display against Dale Steyn and company that would have pleased retired batting star Sachin Tendulkar who was present in the packed stands.
Steyn, one of the most fearsome fast bowlers in the modern game, was clipped by Dhawan over backward square-leg for six and driven over his head for another six by Ajinkya Rahane.
Steyn finished with figures of one for 55 from 10 overs.
South Africa were hampered further when seamer Vernon Philander hobbled off the field with a hamstring injury after sending down just four overs.
Dhawan, who made 73 against Pakistan, put on 127 for the second wicket with Virat Kohli (46) and 125 for the third with Rahane (79 off 60 balls).
The 29-year-old Dhawan fell in the 44th over when Hashim Amla, who had floored a difficult chance off Wayne Parnell when the batsman was on 53, picked up an easy catch at fine leg off the same bowler.
India lost five wickets for 41 runs after being strongly placed at 261 for two, but they still managed to score 80 runs off the last 10 overs.
India broke through in just the fourth over of South Africa's innings when Quinton de Kock, who had hit centuries in each of the last three one-dayers against them, was caught at mid-off for seven.
Dependable opener Amla had made 22 when he top-edged a pull off seamer Mohit Sharma and Shami, who had claimed de Kock's wicket, took a well-judged catch at long leg.
Skipper AB de Villiers made 30 in a 68-run stand for the third wicket with du Plessis when he was run out as Mohit Sharma rifled in a throw from deep cover for Dhoni to break the stumps.
South Africa slipped to 133 for four in the 29th over when Mohit Sharma, returning for his second spell, had the dangerous du Plessis caught at mid-off by Dhawan.
Ashwin, who came into the attack in the 22nd over, had JP Duminy caught in the slips and then trapped Philander leg-before.
In between those two dismissals, David Miller was run out for 22 to leave South Africa gasping for survival at 153 for seven in 34 overs.
The tail folded up as Shami dismissed Steyn, Ashwin bowled Morne Morkel and Ravindra Jadeja claimed last man Imran Tahir leg-before to spark wild celebrations in the stands packed with India supporters.
Scorecard: India vs South Africa