The home side made 285 for five in their allotted 50 overs, with skipper Mahendra Singh Dhoni again top-scoring with 72 from 66 balls.
In reply, England were bundled out for 158 in 36 overs, with Kevin Pietersen (42 from 44 balls) their best batsman.
Video highlights: India v England, second ODI
Right-arm medium pacer Bhuvneshwar Kumar (three for 29) was India's best bowler. Spinner Ravichandran Ashwin also took three for 39.
Ravindra Jadeja was named man-of-the-match after smashing 61 not out off 37 balls, and also taking two for 12 with the ball.
The teams now move east to Dhoni's home town of Ranchi, for the third ODI on Saturday.
India: G Gambhir, AM Rahane, V Kohli, Yuvraj Singh, SK Raina, MS Dhoni*†, RA Jadeja, R Ashwin, B Kumar, I Sharma, Shami Ahmed
England: AN Cook*, IR Bell, KP Pietersen, JE Root, EJG Morgan, C Kieswetter†, SR Patel, JC Tredwell, ST Finn, JW Dernbach, CR Woakes