Sri Lanka failed to capitalise on early chances Monday as England's Jos Buttler scored a fighting century to hand Sri Lanka a 164-run target in Sharjah.
Buttler scored 101 runs after a shaky England start, taking his team to a respectable 163 runs off their 20 overs.
England bowlers led by Adil Rashid then combined to bowl out Sri Lanka for 137 in 19 overs and remain unbeaten with four wins in the Super 12 stage to stay top of the group.
Only South Africa and Australia can match their eight points but England already have the cushion of a far superior run rate.
Buttler smashed six fours and six sixes in his 67-ball knock and put on 112 with skipper Eoin Morgan, who made 40, to lift England after they were in trouble at 35-3.
The England opener, who hit an unbeaten 71 in the win over Australia, surpassed his previous T20 best of 83 and now leads the tournament batting chart with 214 runs.
"I'm really pleased to keep a calm head and work through it, back myself to come good at the end and start to target certain bowlers and at certain ends," Buttler told Sky Sports.
"I felt like I used a lot of my experience. I remember saying a while ago, if I can put both parts of my game together then I think I'll be getting in a really good place with my T20 batting."
Sri Lanka had England on the backfoot but Buttler stood firm and took the attack to the opposition as he got to his hundred on the final ball of the innings with another hit over the fence.
Sri Lanka slipped to their third loss in four matches.
Leg-spinner Wanindu Hasaranga got two early wickets including Jason Roy for nine and Jonny Bairstow, trapped lbw for nought off the first ball.
The right-left batting pair of Buttler and Morgan stood firm to grind down the Sri Lankan attack with some sensible batting.
Buttler reached his fifty in 45 balls and then changed gears with powerful hits that unsettled the Sri Lankan bowling.
Morgan joined the charge with one four and three sixes in his 36-ball knock before being bowled by Hasaranga who returned figures of 3-21.
Fellow spinner Maheesh Theekshana gave away just 13 runs from his four overs but the pace bowlers were taken apart including skipper Dasun Shanaka going for 24 in his two overs.
Sri Lanka lost early wickets in their chase with Pathum Nissanka run out for one in the first over.
Charith Asalanka hit back with boundaries only to lose his wicket for 21 as Rashid struck in his first over.
The leg-spinner got Kusal Perera walking back for seven and Sri Lanka slipped to 57-4 when Chris Jordan trapped Avishka Fernando lbw for 13.
Shanaka, who made 26, and Hasaranga put on a threatening stand of 53 for the sixth wicket but a good relay catch between Roy and substitute Sam Billings on the outfield broke the stand.
Hasaranga walked back after making 34 and soon Shanaka soon followed him to the dug out.
England spinner Moeen Ali and fast bowler Chris Jordan also took two wickets each.
England: Jason Roy, Jos Buttler (wk), Dawid Malan, Jonny Bairstow, Eoin Morgan (capt), Liam Livingstone, Moeen Ali, Chris Woakes, Chris Jordan, Adil Rashid, Tymal Mills
Sri Lanka: Pathum Nissanka, Kusal Perera (wk), Charith Asalanka, Dhananjaya de Silva, Bhanuka Rajapaksa, Dasun Shanaka (capt), Chamika Karunaratne, Wanindu Hasaranga, Dushmantha Chameera, Maheesh Theekshana, Lahiru Kumara
Umpires: Adrian Holdstock (RSA), Rod Tucker (AUS)
TV Umpire: Joel Wilson (WIS)
Match Referee: David Boon (AUS)
PM Imran Khan advises Shaheen Afridi to work hard and continue to play his positive role for Pakistan cricket
Beijing will next month host the world's most restricted mass sporting event since the pandemic
Chasing a 240-run target, Afghanistan were restricted to 215 for nine in their quota of 50 overs
Pakistan will kick off their World Cup 2022 campaign with a match against arch-rival India on 23rd October in Melbourne
Pakistan, India placed together in group 2 in Super 12 round for ICC T20 World Cup 2022
The team comprises 11 outstanding individuals who have impressed with the bat, the ball or their all-round exploits