UPDATE 4pm: England gave their fans a few jitters before wrapping up victory inside an hour on day five of the third Test in Kolkata.
The home side had added just eight runs to their overnight score of 9-239 when Pragyan Ojha was bowled by James Anderson, leaving Ravi Ashwin stranded on 91 not out.
Set 41 to win, England slumped to 3-8, with Alastair Cook, who was stumped, Jonathan Trott and Kevin Pietersen all dismissed in quick succession.
But just as India sensed the possibility a miracle win, Ian Bell restored order with a measured 28 not out as he and Nick Compton steered England home.
"It was a great performance over four-and-a-half days," said England skipper Alastair Cook, who was named man of the match for his first innings 190.
India skipper MS Dhoni lamented his side's first innings score of 316, saying it was more of a 450 wicket.
"We need to pull our socks up," he said.
The result sees England lead 2-1 in the four-match series heading to Nagpur for the final Test, which starts on Thursday.
India responded to the loss by dropping Yuvraj Singh, Zaheer Khan and Harbhajan Singh from their squad, with Parwinder Awana, Piyush Chawla and Ravindra Jadeja called up.
India must win that game to avoid a first home series loss to England since 1984-85 and a first series defeat to any side since Australia won there in 2004.