Suresh Raina became only the third man to make a Twenty20 international century as India beat South Africa by 14 runs at the Beausejour Stadium in St Lucia.
Victory, which put India into the second round Super Eights after its seven-wicket win over Afghanistan on Saturday, was built on Raina’s 101 out of a total of 5 for 186.
Only West Indian Chris Gayle and New Zealander Brendon McCullum had previously made centuries at this level.
Raina had an escape on five when he was caught off a Morne Morkel no-ball.
It was an expensive error by the fast bowler, with left-hander Raina striking five sixes and nine fours in a blistering assault as he reached his century off 59 balls.
Together with Yuvraj Singh (37) he shared a stand of 88 in 10 overs after the pair came together with India 2 for 32 in the sixth over after they had lost the toss.
South Africa captain Graeme Smith had promised his side would be flexible when it came to their openers but few foresaw the skipper dropping himself down to number three.
Jacques Kallis, who opened in Smith’s place, was nearly out for a second ball nought when a diving Yusuf Pathan at backward point just failed to hold on to a catch off the bowling of Harbhajan Singh.
Kallis, after the early loss of Loots Bosman, went on to complete a 45-ball fifty with three fours.
The experienced batsman then tried to keep South Africa on course by slog-sweeping Harbhajan for two successive sixes in the 15th over.
But a stand of 97 in 11 overs was ended when Smith was run out by Praveen Kumar’s throw to wicketkeeper and India captain MS Dhoni.
Then 2 for 118 became 3 for 128 when Kallis fell on 73 after driving leg-spinner Piyush Chawla straight to Ravindra Jadeja in the deep.
South Africa though kept swinging and got the target down to 24 off the last over, bowled by Ashish Nehra and the left-arm quick conceded just nine.
South Africa complete its group program against Afghanistan in Barbados on May 5.