Set a target of 228 to win, a magnificent unbeaten 122 not out from Rohit Sharma helped India to a six-wicket victory in their opening game of the tournament.
For South Africa, it was a third successive defeat and their chances into the semi-finals are looking slim. It was an entertaining, colourful occasion in front of a packed house of mainly noisy flag-waving India supporters.
South Africa were soon regretting their decision to bat first as Jasprit Bumrah (two for 35) opened up with a terrific spell of aggressive bowling.
In his first over he sent down a ball that seamed in and almost cut Quinton de Kock in two.
Bumrah didn't have to wait long before striking the first blow. In his next over he had former Hampshire batsman Hashim Amla caught at second slip by Rohit Sharma for six.
The South African batsmen continued to have a torrid time and Bumrah struck again in the sixth over.
De Kock trying to drive a ball that was full and wide could only edge it to Virat Kohli at third slip.
At 26 for two the Proteas were in deep trouble.
Their total of 34 after 10 overs represented the lowest opening power play of the tournament to date.
Faf du Plessis (38) and Rassie van de Dussan (22) steadied the ship with a 50 partnership off 68 balls.
The introduction of spinners Yuzvendra Chahal (four for 51) and Kuldeep Yadav (one for 46), however, spelt further trouble for South Africa.
Chahal removed van der Dussan and du Plessis in the 20th over and JP Duminy was later trapped lbw by Yadav.
South Africa were in dire straits at 98 for five but brave resistance from lower order batsmen David Miller (31), Andile Phehlukwayo (34) and Chris Morris (42) lifted them to 227 for nine at the close of their innings.
The fall of Shikhar Dhawan, caught behind off the bowling of Kagiso Rabada early in the India innings restored some hope in the South Africa ranks.
India captain Virat Kohli fell to a terrific one-handed diving catch from wicket-keeper de Kock off Phelukwayo with India on 54 for two. A superb innings century by Sharma ably supported by KL Rahul (26) and MS Dhoni (34) saw India home with 2.3 overs to spare.