Sri Lanka failed to take advantage of the early opportunities on Monday as England’s Jose Butler scored a century to give Sri Lanka a target of 164 in Sharjah.
It seemed like a curtain for England before, when the ODI World Cup champions lost three important wickets to Sri Lanka in the first 10 overs.
However, England came back thanks to a solid partnership between Morgan and Butler, and later scored a fighting century.
Butler scored 101 off 67 balls, six fours and as many sixes.
Earlier, Sri Lanka put pressure on strong England, who took three early wickets as the island nation played against the former world champions in the Super 12 of the Twenty20 World Cup on Monday.
Sri Lanka captain Dasan Shinaka won the toss and elected to bowl first.
The peninsular nation of Sharjah remains in contention despite their previous defeat to South Africa as they look for a place in the semi-finals from Group 1.
“We have an advantage because our batsmen and bowlers know the situation,” Shanaka said of the place where they beat Bangladesh but then lost a close final match.
England stand with the same team that hammered rivals Australia for the third time in a row to stay at the top of the table and make it to the semi-finals.
Captain Evan Morgan admitted that he used to field first, but is trying to overcome every challenge.
“We’re trying to win every game right now, and we’re guaranteed to get to the next level,” Morgan said. “Everyone is well-drawn and fresh.”
England: Jason Roy, Jose Butler (wicket), David Mullen, Johnny Barstow, Avon Morgan (captain), Liam Livingstone, Moin Ali, Chris Vokes, Chris Jordan, Adil Rashid, Tamil Mills
Sri Lanka: Patham Nisanka, Kosala Perera (wicket), Charth Asalanka, Dhananjaya de Silva, Bhanuka Raja Paksa, Dawson Shanaka (captain), Chamika Krunartne, Venando Hasranga, Dashmantha Chamira, Mahesh Thekshna, Lahiru Kumara
Umpires: Adrian Holdstock (RSA), Rod Tucker (AUS)
TV umpire: Joel Wilson (WIS)
Match referee: David Bone (AUS)