Sri Lanka skittled out England for 99 - its sixth-lowest total in one-day internationals - to cruise to a 157-run win in Durham overnight and tie the five-match series at 1-1.
Replying to Sri Lanka's 256-8 that was inspired by opener Tillakaratne Dilshan's 88, England was reduced to 29-4 after some brilliant pace bowling from Nuwan Kulasekara (3-15) before offspinner Sachithra Senanayake (4-13) ran through the tail.
Helped by Eoin Morgan's 40, England just avoided its lowest ODI total of 86, against Australia in 2001, but that was the only thing the team can take from a dreadful display at Chester-le-Street. Even its performance in the field was poor, dropping two catches and conceding 15 runs through wides.
''Abysmal really, I can't explain it,'' said Morgan, who was England's captain for the match with Alastair Cook out with a right groin strain.
''We have been outplayed here in conditions we normally thrive in.''
A target of 257 looked competitive, but nothing more for the tourists, who were beaten convincingly in the first ODI at The Oval last week.
Dilshan fell just short of his 18th ODI century after being bowled through the gate by Chris Jordan, ending a patient 101-ball knock that lacked the batsman's usual extravagance and aggression.
He underpinned Sri Lanka's innings, sharing a second-wicket stand of 96 with Kumar Sangakkara (40), while a late flurry of runs from Ashan Priyanjan (43) and captain Angelo Mathews (30) pushed the team past 250 - considered a par score here. Mahela Jayawardene failed with the bat, getting run out for 2 as he dawdled back for a third run.
Kulasekara removed the top three England batsmen Michael Carberry (6), Ian Bell (12) and Gary Ballance (5) in a devastating spell of 3-1 off 11 balls.
With Lasith Malinga getting a delivery to nip back off the seam and bowl Joe Root for a duck, England was in deep trouble at 29-4.
The runs dried up and Morgan was the only England batsman to handle the spin wizardry of Senanayake, as the hosts inched toward triple figures.
A reverse sweep by James Anderson took England past its lowest ODI score but the end came moments later when he was bowled by Senanayake, whose career-best ODI figures came in just 7.1 overs.
''We were not sure about our score - we thought it was about par - but the bowlers were excellent again and took early wickets,'' Sri Lanka captain Angelo Mathews said.
''It was cold and it was seaming a lot - Nuwan Kulasekara is unplayable in these conditions.''
The third match was scheduled for Wednesday (NZT Thursday), in Manchester.
Should bouncers be banned from cricket?