Sri Lanka pushed England closer to the World Cup exit door on Thursday when they bowled out the defending champions for just 156.
Ben Stokes top-scored for England with 43 but even he was powerless to perform one of his trademark rescue missions as Sri Lanka ripped through their rivals in just 33.2 overs.
Both sides came into the game with identical records of one win and three defeats, knowing that another loss would almost certainly end their hopes of making the semi-finals.
England, who won the toss and chose to bat, started briskly, reaching 45-0 by the seventh over before veteran all-rounder Angelo Mathews struck.
Former skipper Mathews, who was called up to replace the injured Matheesha Pathirana after initially being left out of the 15-man squad, is appearing in his fourth World Cup.
The 36-year-old, bowling in an ODI for the first time since March 2020, had Dawid Malan caught behind after the opener had made 28.
Mathews also effected the run out of Joe Root (three) before also claiming the wicket of the recalled Moeen Ali (15).
In between, opener Jonny Bairstow became Kasun Rajitha's first wicket of the match after making 30 off 31 balls.
Captain Jos Buttler, on eight runs, and the returning Liam Livingstone (one) fell to fast bowler Lahiru Kumara.
Chris Woakes's dismal World Cup continued when he fell to Rajitha for nought leaving England on 123-7 in the 26th over.
Woakes had been dropped for the 229-run rout at the hands of South Africa but his return was over in four balls with Sadeera Samarawickrama just clinging onto a low catch at point.
Stokes, at the non-striker's end, suggested that the catch was not clean but the batsman was given out on review.
Once Woakes was gone, England's hopes rested on Stokes but he fell for 43 when he holed out to substitute fielder Dushan Hemantha off Kumara.
Stokes's runs came off 73 balls with six fours as England slumped to 137-8.
Adil Rashid was run out in comical fashion when wicket-keeper Kusal Mendis spotted he had wandered too far down the wicket.
Spinner Maheesh Theekshana finished things off by having Mark Wood stumped for five.
Brief scores: England 156 all out in 33.2 overs (Ben Stokes 43; Lahiru Kumara 3-35)
dj/gj