Sri Lanka beat England by 90 runs in the sixth ODI at Pallekele to take an unbeatable 4-2 lead in their seven-match series.
Kumar Sangakkara completed his 20th ODI century to help the home team post a healthy total of 292 for seven.
England could only muster 202 in reply, bowled out in less than 42 overs despite a resilient 55 from Joe Root.
The evergreen Sangakkara blazed 112 off as many balls, highlighted by 12 fours and two sixes, after the 37-year-old was dropped on 41 by England captain Alastair Cook.
The Sri Lankans made a slow start, scoring just 27 runs off the first 10 overs, before Sangakkara opened up, putting on 153 with Tillakaratne Dilshan for the second wicket.
Dilshan made a patient 68 before Dinesh Chandimal pushed the total towards 300 with a brisk 35 in the closing overs.
Chris Woakes, Steven Finn and Chris Jordan captured two wickets each for England, who needed to win the game to square the series heading into Tuesday's final match in Colombo.
England could hardly had made a worse start to their innings when Cook was dismissed lbw for one in the first over.
By the 18th over, England were in deep trouble at 84 for five and although Root completed a half-century and Woakes chipped in with 41, the tourists never came close to challenging Sri Lanka's total as Suranga Lakmal mopped up the tail to finish with 4 for 30.