England’s position in the semi-final has been largely assured as a result of the win.
The toss was won by Sri Lanka, and they elected to bat.
In their 20 overs, England were 163-4, with Jos Buttler striking an undefeated century. Six boundaries and as many sixes were among the six boundaries and sixes he hit in his 101-run innings off 67 deliveries.
He put up a 112-run stand with Eoin Morgan, who smashed a boundary and three maximums in a 36-ball 40.
From his four overs, Wanindu Hasaranga de Silva took three wickets.
Sri Lanka was removed for 134 with an over to spare in reply. With the aid of three fours and a six, Hasaranga made 34 off 21 deliveries. Dasun Shanaka, the captain, and Bhanuka Rajapaksa both scored 26 runs.
Two wickets each were taken by Moeen Ali, Adil Rashid, and Chris Jordan.