England's horror World Cup run continued when Sri Lanka smashed the third-highest run chase in the tournament's history to clinch a nine-wicket defeat in Wellington on Sunday.
Centuries by Kumar Sangakkara and Lahiru Thirimanne ensured Sri Lanka overhauled the 310-run target set after England won the toss and elected to bat.
The pair were unbeaten as Sri Lanka ended the innings on 312-1 with 16 balls to spare, Thirmanne carrying his bat on 139 and Sangakkara scoring 117 for his second successive century.
The run chase has only been exceeded twice at cricket's showcase event, when Ireland reached 329 against England in 2011 and Sri Lanka's 313 against Zimbabwe in 1992.
The loss leaves England with a solitary World Cup win against minnows Scotland after they were well-beaten by co-hosts Australia (111 runs) and New Zealand (eight wickets) in their opening matches.
A tally of two points with two pool games left to play means their quarter-final hopes are hanging by a thread, while Sri Lanka are on the verge of the last eight.
Even so, it was a much-improved effort with the bat from Eoin Morgan's men, including 121 to Joe Root, who at 24 became England's youngest World Cup centurion.
But they proved toothless in bowling, failing to make any impression with the ball on a drop-in wicket at Wellington's Westpac stadium that offered no movement to their pace attack.
Stuart Broad leaked 67 off his 10 overs without a wicket and Steve Finn conceded 54 off 8.
"We certainly lost it with the ball," Morgan said. "We had a par score on the board.
"(But) today (Sunday) we bowled a bad ball every over, which you get punished for."
Fielding errors also proved costly with Thirimanne dropped three times during his innings.
England may still limp into the quarter-finals with wins in their final pool matches against Bangladesh and Aghanistan, but they will have lost to every major nation they have played.
The win consolidates Sri Lanka in second position in the Pool A table, although tournament favourites Australia have a game in hand.
England made a brisk start as Ian Bell and Moeen Ali combined for a 62-run partnership in the first 10 overs.
Root looked assured hitting his fourth one-day international century, with Gary Ballance (6) the only real batting failure for England.
The 310 target looked competitive before Sri Lanka, who now have four century makers at the tournament, unleashed their batting prowess.
Openers Thirimanne and Tillakaratne Dilshan made a flying start to the chase, racing to 100 without loss.
Thirimanne was dropped on three and made the most of his life, bringing up his third half-century of the tournament in 58 deliveries.
A change of pace from Ali provided a wicket when Dilshan (44) mis-cued a drive straight to Morgan at mid-wicket.
But it did nothing to stem the flow of runs as Sangakkara came in and blasted a 45-ball half century.The onslaught continued to the delight of Sri Lanka fans in the New Zealand capital and Thirimanne fittingly ended the match with a booming six off Chris Woakes.
Scorecard: England vs Sri Lanka
England: Moeen Ali, Ian Bell, Gary Ballance, Joe Root, Eoin Morgan (captain), James Taylor, Jos Buttler, Chris Woakes, Stuart Broad, Steven Finn, James Anderson.
Sri Lanka: Tillakaratne Dilshan, Lahiru Thirimanne, Kumar Sangakkara, Mahela Jayawardene, Angelo Mathews (captain), Dimuth Karunaratne, Dinesh Chandimal, Thisara Perera, Rangana Herath, Lasith Malinga, Suranga Lakmal.