Virat Kohli celebrated his birthday in style by scoring a record-equalling century as India beat South Africa by 243 runs.
Kohli scored 101 runs off 121 balls without being dismissed, equaling the record of 49 centuries in one-day internationals set by his compatriot Sachin Tendulkar.
The 35-year-old’s innings helped the home side post a total of 326 for five from their 50 overs and South Africa were then skittled out for just 83 runs at Eden Gardens in Kolkata.
The victory means India are assured of topping the group after winning all eight of their matches to date, while South Africa – who have also secured a semi-final berth – are second on 12 points, two ahead of Australia.
After winning the toss and electing to bat, India captain Rohit Sharma got his side off to a fast start as he made 40 from 24 balls before being caught at mid-off by his opposite number Temba Bavuma from the bowling of Kagiso Rabada.
That brought Kohli to the crease and, after the dismissal of Shubman Gill for 24, he put on 134 for the third wicket with Shreyas Iyer before Iyer was eventually dismissed by Lungi Ngidi after making 77 from 87 balls.
A late flourish from Suryakumar Yadav and Ravindra Jadeja saw India post a competitive total that their bowlers ensured South Africa would get nowhere near.
Quinton de Kock made just six before chopping a delivery from Mohammed Siraj onto his own stumps and Bavuma and Aiden Markram fell cheaply to reduce the Proteas to 35 for three.
Only four batsmen reached double figures, with Marco Jansen top-scoring with 14, while Jadeja was the pick of the bowlers, taking five wickets for 33 runs.