Suresh Raina blasted 101 off 60 balls as India beat South Africa by 14 runs and moved into the Super Eights at the ICC World Twenty20.
Indian No.3 Raina had come in after just two balls and hit nine fours and five sixes as he guided India to 186-5 at Beausejour Stadium in St Lucia.
South Africa, opening its Group C campaign, could only manage 172-5 in reply, giving India two wins from two having beaten Afghanistan on Saturday.
South Africa captain Graeme Smith won the toss and elected to bowl.
Rory Kleinveldt took the new ball and claimed the first wicket with his second ball as Murali Vijay went for a first-ball duck, caught behind by Mark Boucher.
Raina and Yuvraj Singh came together at 32 for two and added 88 in 10.2 overs before Yuvraj was caught by Smith off Kleinveldt for 37.
Raina and Yusuf Pathan kept the tempo up, blasting Kleinveldt for 25 in the 18th over.
Raina brought up his century in style with a six in the final over and was out next ball, caught in the deep by AB de Villiers off Albie Morkel before captain MS Dhoni added eight more runs, including a six off the last ball.
South Africa preferred Loots Bosman over Herschelle Gibbs as an opener alongside Kallis, but runs came slowly, Bosman hitting eight off 14 before his dismissal in the fifth over when he was caught by Chawla off Pathan with the score on 21.
Smith came in next but at halfway South Africa had only reached 57-1.
Kallis reached his 50 off 45 balls and moved South Africa past 100 with a six as he began to change gears, 16 coming from the 15th over.
Smith was run out for 36, ending a 97-run partnership, and Kallis quickly followed, caught by Ravi Jadeja off Chawla for 73.
That left South Africa 128-3 with 21 balls remaining and 59 runs needed.
It was too tall an order, despite de Villiers hitting 31 from 15 balls.
Smith took the blame for his and Kallis' slow run chase early in their innings but also pointed to an expensive last five overs with the ball.
"Jacques and I left too much to do for the guys down the backstretch and we must take repsonsibility for that," Smith said.
"But there were a few costly things in the field as well, 75 runs in the last five overs takes them to a total that's hard to get on this surface."
Smith also rued letting Suresh Raina off the hook when he was caught on five off a Morne Morkel no ball.
"I think 160 was around par and Suresh Raina played a great knock after giving a life with a no ball and he made us pay," said the skipper.
South Africa now face sAfghanistan in Bridgetown, Barbados next Wednesday, needing a victory over the qualifiers to progress.
But with India already through, captain Dhoni was a happy man.
"It's a good start in this tournament and we just need to continue in this form," Dhoni said.
"We've not seen many sides score this many runs in the last five overs, especially as the South African bowling attack is one of the best you'll see.
"So we batted really well at the end and that mattered because if the par-plus score is 170 and you end up getting 15 more runs then the opposition team is in trouble."