England have set Sri Lanka a target of 266 to win the fourth one-day international in Colombo.
James Taylor, who was brought into the fold to replace the banned Alastair Cook, starred by scoring 90 in what was just his third ODI.
The 24-year-old hit six fours and two sixes to arrest England's slow start, before holing out to Kusal Perera as the tourists eventually stumbled to 265 all out from 50 overs.
Alex Hales was first to go having failed to get off the mark, while Mooen Ali [19] was caught behind by Kumar Sangakkara.
Joe Root and Taylor saw their partnership come to a close when the former was bowled by Rangana Herath, but Ravi Bopara took over to add a further 48 runs between him and the Nottinghamshire batsman.
Sri Lanka then managed to pick up wickets on a more regular basis as Bopara and Taylor departed, but Eoin Morgan racked up much-needed 62 from 47 balls before Sangakkara caught him out to end the innings.
Sri Lanka lead the seven-match series 2-1.