India, set 229 for victory, was on course at 191 for three but Punam Raut’s dismissal for 86 sparked a dramatic collapse.
Pace bowler Anya Shrubsole took five wickets for 11 runs in 19 deliveries as India slumped to 219 all out with eight balls to spare. India lost its last seven wickets for 28 runs. Shrubsole finished with six for 46 in 9.4 overs.
Earlier, India had restricted the host to 228 for seven with veteran pace bowler Jhulan Goswami enjoying an excellent return of three for 23 in 10 overs.
The 34-year-old pacer dismissed England’s star batter Sarah Taylor (45) and top-scorer Natalie Sciver (51).
England, which opted to bat, was struggling at 164 for six in the 38th over. But its tailenders kept it in the game, batting out the full 50 overs and ensuring India would at least have to chase a total in excess of 200 in front of a full house of around 26,500 spectators.
Jenny Gunn (25 not out) and Laura Marsh (14 not out) added an unbroken 32 runs off 25 balls.
England made a steady start against India which had won the opening pool match between the two teams by 35 runs at Derby.
But, from 47 for no loss, England lost three wickets in quick succession to be 63 for three in the 17th over with leg-spinner Poonam Yadav (two for 36) taking two for one in five balls.
Lauren Winfield (24) was bowled round the legs trying to sweep left-arm spinner Rajeshwari Gayakwad before Poonam had opener Tammy Beaumont hole out to Jhulan at deep-midwicket for 23.
Sweep proved to be captain Heather Knight’s undoing as she fell leg before for just one to PoonamYadav.
Taylor and Sciver put on 83 before Jhulan struck in her second spell. Taylor was caught low down the legside by wicket-keeper Sushma Verma. And 146 for four became 146 for five when Fran Wilson was leg before off the next ball.
Sciver on song
Sciver, on the other hand, completed her half-century off 65 balls with five fours. But she too fell leg before to Jhulan. England was 164 for six in the 38th over with all its top-order dismissed after Jhulan took three for two in 10 balls.
Brunt made a useful 34 before she was brilliantly run out by Deepti’s direct hit from cover.