The already-eliminated South Africans won the toss and elected to field first.
It looked as though captain AB De Villiers had made the correct decision when Gautam Gambhir (8), Virender Sehwag (17) and Virat Kohli (2) were all dismissed early by Morne Morkel, Robin Peterson and Jacques Kallis respectively.
However, the introduction of Suresh Raina at number six helped to swing the match back in India's favour.
The 25-year-old struck an unbeaten 45 to help move his side past the 150 mark.
India will qualify for the semi-finals if they bowl South Africa out for 121 runs or less.