Electing to bat, India's batswomen put up a modest 116 for six with opener Poonam Raut (51) scoring a half-century and skipper Mithali Raj contributing 35 runs.
However, the total proved insufficient as the British batswomen overhauled the target with 17 balls to spare.
Openers Charlotte Edwards (50 not out) and Laura Marsh (39) laid the foundation for the easy win as they put on a 78-run stand.
Marsh had excelled with ball also, taking two Indian wickets.
Leg-break bowler Reema Malhotra had Marsh stumped in the 12th over but it was too late by then. Sarah Taylor (25 not out) joined her skipper Edwards and guided the side to win.
India had lost the first match to Australia by eight wickets and two defeats in a row have crushed their semifinal hopes.
The top two teams in each group will qualify for the last-four stage and England and Australia, with two wins each, have sealed their berths for the next stage.
India will next play Pakistan in their last group match on October 1. Pakistan have also lost both the group matches.
The arch-rivals will now play for pride at the Galle International Stadium.
India: 116 for 6 in 20 overs. (Poonam Raut 51, Mithali Raj 35; Laura Marsh 2/22).
England: 118/1 in 17.1 overs. (Charlotte Edwards 50 not out, Laura Marsh 39; Reema Malhotra 1/23).
Australia make it to last-four
Defending champiomns Australia defeated Pakistan by 25 runs on the Duckworth-Lewis Method.
In the first match of the day on Saturday, an opening stand of 53 between Alyssa Healy and Meg Lanning set a strong foundation for Australia, which finished at an impressive 146 for five.
After the departure of both the openers, who fell to Pakistan’s left-arm spinner Sadia Yousuf in the ninth over, Jessica Cameron and Lisa Sthalekar continued the fast pace, putting together a valuable stand of 67 runs that came off 45 balls.
Cameron, who was named player of the match for her knock of 42 from 28 balls, seemed to relish the challenge of performing on the big stage. "I think I've worked really hard for this," she said. "Our preparation here has been good, we've adjusted well to the conditions here. I don't believe I've done too much, hopefully I'm reserving my best for England."
Chasing 147 to stay alive in the tournament, Pakistan was struggling at 38 for three from nine overs when rain prevented any further play in the match.
For Australia, Marsh finished with figures of two for 22 in four overs, while Katherine Brunt, Holly Colvin and Arran Brindle picked up one wicket apiece.
Pakistan captain Sana Mir was disappointed by the loss. "It is tough to digest this loss. We don't have too much international exposure, so this was a stage that we all looked forward to, and it is very disappointing to lose in this manner.
"We didn't want to concede more than 130 runs, but even with that, when we came out to bat, we tinkered with the batting in order to make use of the Powerplay overs, but it didn't work,” she said.
Australia: 146 for five, 20 overs (Jessica Cameron 42, Alyssa Healy 36, Lisa Sthalekar 29; Sadia Yousuf 2-39)
Pakistan: 38 for three, 9 overs (Qanita Jalil 13; Ellyse Perry 2-19)
Catch all the ICC World Twenty20 live action on www.espnstar.com/live