Rudra Pratap Singh took four for 13 as India strangled South Africa, winning the final Super Eight group match by 37 runs to deprive the home side of a semi-final spot and allow New Zealand to qualify instead.
Rohit Sharma hit a 40-ball 50 and Mahendra Singh Dhoni 45 as India recovered from 61 for 4 to post a competitive 153 for 5. That meant South Africa needed 126 to qualify, and they were in turn restricted to 116 for 9.
They never recovered after an opening spell from RP Singh and Sreesanth (2-23) reduced them to and 30 for 4.
Mark Boucher and Albie Morkel hit 36 each to give them hope but when they were dismissed, it was curtains, and they fell short of their qualification target by 10 runs.
India fielded brilliantly - Dinesh Karthik taking an outstanding catch to get rid of Graeme Smith before he took over the gloves as Dhoni had to banish himself to the outfield with a back injury. Rohit Sharma pounced to run out Justin Kemp and Karthik himself picked up two stumpings.
Sharma had earlier shared a crucial stand of 85 with Dhoni to rescue India and he heaved the last ball of the innings for six to score his fifty. Shaun Pollock (2-17) and Makhaya Ntini (1-30) were the chief instigators of the first of two top order collapses - the difference was India were able to respond and rebuild while South Africa weren't. New Zealand were the beneficiaries and they will play Pakistan while Australia await for India in Saturday's semi-finals.
© Cricket World 2007