Alex Hales scored England's first ever T20 international century to inspire a record-run chase against Sri Lanka as the 2010 winners kept their World Cup hopes alive with a six-wicket win in Chittagong.
The 25 year old struck 116 from 97 balls including six towering sixes as England chased down 190 to win with four balls to spare as Sri Lanka's formidable bowling attacking of Lasith Malinga and Ajantha Mendis toiled amid the dew.
Mahela Jayawardene's 89 had put Stuart Broad's side on the brink of exiting the competition at the Super 10 stage amid an England fielding performance which including four dropped catches and a missed run-out from wicket-keeper Jos Buttler.
And after being set a record total to keep alive their hopes of reaching the last four, England's winter of discontent looked set to continue as Nuwan Kulasekara took the wickets of Michael Lumb (0) and Moeen Ali (0) in the first over.
But Hales and Eoin Morgan (57) put on 152 for the third wicket to drag England back into contention but the dismissal of the latter and Buttler (2) in the 17th over look to have put paid to their hopes as Kulasekara struck again.
However, three sixes in the final eight delivers from Hales saw him reach a maiden T20 hundred and then complete the victory in stunning fashion as England pulled off a shock result to remain in the competition.
Captain Broad said: "That's a very special knock and one of the best I've seen in an England shirt. World events are a big and that kind of win will give our dressing room a lot of belief.
"I feel for Sri Lanka's bowlers with the dew. We changed about four or five balls in the innings. We've been fielding with wet balls at training, we should probably make it wet bars of soap I think.
"The confidence we've got with the bat scoring 172 against New Zealand and this match today, we've got a lot of momentum. Alex's knock is one of the best I've ever seen. He kept up with the asking rate throughout and hit boundaries at the end."
England face South Africa on Saturday and Netherlands next week in their final two group games and must win both to ensure they reach the semi-final.