India knocked out a defiant Zimbabwe in a high-scoring match in Chennai to keep alive their chances of making the semis.