Colombo - Kumar Sangakkara laid the foundation before Angelo Mathews completed a nervy chase as Sri Lanka beat England by six wickets in the fourth one-day international to go 3-1 up in the seven-match series on Sunday.
Sangakkara hit a sparkling 86 but it was Mathews' fine, if not flawless, captain's knock of 51 not out that helped the hosts overwhelm the 266-run victory target with two balls to spare at Colombo's R Premadasa Stadium.
James Taylor's career-best 90 and Eoin Morgan's belligerent 62 had powered England to 265 all out in 50 overs, nine of the wickets claimed by spinners.
Sri Lanka looked in trouble at 69 for two but Sangakkara and Mahela Jayawardene, who have played over 800 ODIs between them, added 96 runs for the third wicket to put the chase back on track.
Jayawardene dragged a Chris Jordan delivery onto his stumps to depart, while Sangakkara perished chasing a wide delivery from the same bowler.
England maintained the pressure and were nearly rewarded but Alex Hales spilled a Mathews catch in the 46th over from an exasperated Jordan.
Despite conceding 20 extra runs including 12 wide balls, the visiting bowlers showed enough fight to take the game to the last over but Mathews hit Steven Finn for a boundary to bring up his 50 and seal victory.
Pallekele hosts the fifth match on Wednesday.
Earlier, regular England captain Alastair Cook's suspension, due to a slow over-rate offence, handed Taylor an opportunity and the 24-year-old grabbed it.
Opting to bat first, England wobbled early as Hales fell for a golden duck and the in-form Moeen Ali (19) was sent back by Tillakaratne Dilshan (3-64).
The 93-run partnership between Taylor and Joe Root (36) steadied the innings before left-arm spinner Rangana Herath (3-36) dismissed Root.
Taylor, who completed his maiden ODI fifty in 69 balls with the help of two fours and as many sixes, developed cramps and became one of the three victims of spinner Ajantha Mendis.
At 170 for three in the 35th over, England looked set for a huge total but the Sri Lankan spinners, who bowled the final 21 overs of the innings, showed considerable discipline to restrict the visitors.
The scoreboard supplied by AP:
Moeen Ali c Sangakkara b Dilshan 19
Alex Hales c Jayawardene b Prasad 0
James Taylor c K.Perera b A. Mendis 90
Joe Root b Herath 36
Ravi Bopara b Dilshan 22
Eoin Morgan c Sangakkara b Dilshan 62
Jos Buttler c Jayawardene b Herath 15
Ben Stokes c T. Perera b A. Mendis 6
Chris Woakes b Herath 6
Chris Jordan c T. Perera b A. Mendis 1
Steven Finn not out 1
Extras: (1lb, 6w) 7
TOTAL: (all out) 265
Overs: 50.
Fall of wickets: 1-5, 2-29, 3-122, 4-170, 5-173, 6-203, 7-219, 8-238, 9-245.
Bowling: Angelo Mathews 6-0-21-0, Dhammika Prasad 6-1-29-1 (2w), Tillakaratne Dilshan 10-0-64-3 (2w), Thisara Perera 2-0-19-0 (1w), Rangana Herath 10-0-36-3, Jeevan Mendis 7-1-39-0, Ajantha Mendis 9-0-56-3 (1w).
Sri Lanka:Tillakaratne Dilshan c Morgan b Woakes 16
Kusal Perera c Jordan b Ali 31
Kumar Sangakkara c Woakes b Jordan 86
Mahela Jayawardene b Jordan 44
Angelo Mathews not out 51
Lahiru Thirimanne not out 19
Extras: (4b, 4lb, 12w) 20
TOTAL: (for 4 wickets) 267
Overs: 49.3.
Fall of wickets: 1-28, 2-69, 3-165, 4-214.
Did not bat: Jeevan Mendis, Thisara Perera, Dhammika Prasad, Rangana Herath, Ajantha Mendis.
Bowling: Steven Finn 9.4-1-61-0 (3w), Chris Woakes 9-0-53-1 (1w), Moeen Ali 10-0-44-1, Chris Jordan 10-1-35-2 (3w), Joe Root 6-0-29-0 (3w), Ravi Bopara 3-0-16-0, Ben Stokes 2-0-21-0 (2w).
Toss: England.
Result: Sri Lanka won by 6 wickets.
Series: Sri Lanka leads seven-match series 3-1.
Umpires: Steve Davis, Australia, Ranmore Martinesz, Sri Lanka.
TV umpire: Simon Fry, Australia, Australia. Match referee: David Boon, Australia.