Colombo: Kumar Sangakkara helped Sri Lanka to a six-wicket victory over England in the fourth one-day international and a 3-1 series lead.
Sangakkara's 86 was supported by 44 from Mahela Jayawardene and Angelo Mathews' unbeaten 51 as the home side chased 266 with two balls to spare.
James Taylor, replacing banned England captain Alastair Cook, earlier made 90.
But his dismissal sparked a collapse of seven wickets for 95 runs, as the tourists were bowled out for 265.
Though that was a factor in England's defeat, a lack of penetration from the touring bowlers meant a competitive total rarely looked like being defended, despite two dots from Steven Finn in the final over ensuring a late completion of the Sri Lanka pursuit.
On a slow Colombo pitch that turned throughout, England opted against changing the attack that won them the third ODI and again omitted off-spinner James Tredwell.
After Sri Lanka sent down 36 overs of spin, including the last 22 of the England innings, the visitors only had Moeen Ali and part-timer Joe Root to call on.
Chris Jordan's 2-35 made him the pick of the England bowlers, but the rest of the pace quartet were largely ineffective, with Ben Stokes conceding 21 runs in his two overs.
However, focussing on England's shortcomings would do a disservice to Sangakkara, who again showed the class that has brought him more ODI runs than the entire England XI combined.
The left-hander dabbed, pushed and worked singles, as well as unfurling some flowing cover drives and a ramp that deflected a Chris Woakes bouncer over wicketkeeper Jos Buttler's head for four.
So untroubled was he, it seemed barely believable when he hit a Jordan long hop straight to Woakes on the off-side boundary, a wicket that began a brief spell of England pressure.
But, with the required rate approaching seven an over, Mathews and Lahiru Thirimanne accelerated away.
England's last chance was missed when Alex Hales dropped Mathews at third man off Jordan, with the home captain coolly clipping the winning boundary off Finn just when England may have been thinking of a remarkable escape.
While England are on the brink of defeat in the seven-match series, their World Cup preparations have been boosted by the arrival of Taylor and the return to form of stand-in captain Eoin Morgan, who made 62 from 47 deliveries.
In only his third ODI, Taylor came to the crease in the second over after Hales wasted the opportunity of replacing Cook at the top of the order by flashing his first legal delivery to first slip.
When Moeen was caught behind aiming an ugly slog at Tillakaratne Dilshan, Taylor combined with Root for a partnership of 93.
Urgently scampering between the wickets, Taylor nudged, swept and occasionally lofted down the ground in a 69-ball half-century.
Root accumulated in similar fashion and, though he was bowled by Rangana Herath, Taylor continued towards a century.
But, struggling with cramp, he used his feet in the first over of the batting powerplay and sliced Ajantha Mendis to cover.
From there, only Morgan found a way of making an impression on the Sri Lanka spinners, the left-hander regularly powering through the leg side for his first ODI half-century since January.
Two sixes and a four in the 50th over took him past 50, before he skied Dilshan to the gloves of Sangakkara from the final delivery.
Earlier, England have won the toss and have opted to bat.
Both teams have one change. Mahela Jayawardene comes in for Thilan Kandamby for Sri Lanka while James Taylor comes in for Alastair Cook, who has been suspended for one game.
Sri Lanka: Kushal Janith Perera, Tillakaratne Dilshan, Kumar Sangakkara (wk), Mahela Jayawardene, Angelo Mathews (Capt.), Lahiru Thirimanne, Thisara Perera, Jeevan Mendis, Dhammika Prasad, Rangana Herath, Ajantha Mendis
England: Moeen Ali, Alex Hales, James Taylor, Joe Root, Ravi Bopara, Eoin Morgan (Capt.), Jos Buttler (wk), Ben Stokes, Chris Woakes, Chris Jordan, Steven Finn
England - 265 (Taylor 90, Morgan 62, Herath 3-36, A Mendis 3-56, Dilshan 3-64)
Sri Lanka - 267/4 (Sangakkara 86, Mathews 51*)
Result - Sri Lanka won by 6 wickets