Jofra Archer moved into a share of top spot on the World Cup wicket-taking list with 3-52 as England restricted Sri Lanka to 232-9 in the group game at Headingley.
Archer's fifth three-wicket haul in six games allowed him to join Australian paceman Mitchell Starc with 15 wickets so far in the tournament, reports AP.
Fellow fast bowler Mark Wood took 3-40 to move to improve his tournament tally to 12 wickets and wrist-spinner Adil Rashid took two wickets in two balls in a haul of 2-45.
Angelo Mathews held the Sri Lanka innings together with a defiant, unbeaten 85 from 115 balls.
The Sri Lankans started badly after winning toss and electing to bat, slumping to 3-2 in the third over after Archer had the captain Dimuth Karunaratne caught behind in his first over and Chris Woakes dismissed Kusal Perera two balls later.
Wood ended Sri Lanka's 59-run third-wicket partnership when he dismissed Avishka Fernando, who scored 49 from 39 balls.
That brought Mathews to the crease, and he shared a 71-run stand with Kusal Mendis, who scored a patient 46 from 68 balls, before Rashid chimed in with the wickets of two Mendis on consecutive deliveries.
He had Kusal Mendis caught at mid-wicket by Eoin Morgan and then took a return catch for a soft-dismissal against Jeevan Mendis as Sri Lanka slipped to 133-5.
Dhananjaya de Silva (29) drove the hat-trick ball for two runs and combined with Mathews in a 57-run stand before Archer struck with a slower ball, with Joe Root taking a diving catch at mid-on in the 44th over.
Archer had Thisara Perera (2) caught at third man in his next over and Wood picked up two more tail-end wickets.
Sri Lanka has labored to 114-3 halfway through its allotted 50 overs in the Cricket World Cup group game against top-ranked England.
The Sri Lankans started badly after Dimuth Karunaratne won the toss and batted, losing two wickets in three deliveries to slump to 3-2 in the third over.
Karunaratne was caught behind off of the last ball of Jofra Archer's first over - the second of the innings - and Kusal Perera was caught at third man off Chris Woakes.
The Sri Lankans have recovered with two 50-plus partnerships.
Kusal Mendis shared a 59-run third-wicket stand with Avishka Fernando, who scored 49 from 39 balls before guiding a ball from Mark Wood directly to third man, and an unbeaten 52 for the fourth wicket with Angelo Mathews.
At the 25-over mark, Mendis was unbeaten on 41 and Mathews was on 21.
Sri Lanka captain Dimuth Karunaratne won the toss and elected to bat first against top-ranked England in the Cricket World Cup group game at Headingley.
Sri Lanka made two changes to the lineup that lost to Australia, with Avishka Fernando and Jeevan Mendis coming in to bolster the batting.
England retained the same XI that beat Afghanistan earlier this week in Manchester, where it posted 397-6 - the highest total of the tournament so far - and captain Eoin Morgan hit a record 17 sixes in his 148.
Morgan said the Headingley wicket was likely to assist the spinners, giving veteran allrounder Moeen Ali the chance to play his 100th one-day international for England
England can regain the lead in the standings with a victory, on run-rate over Australia. Sri Lanka has one win, two losses and two washed out games so far.