Sri Lanka weathered a brilliant knock of 121 by Jos Buttler to beat England by seven runs in the fourth one-day international and take the five-match series to a decider at 2-2.
Veteran left-hander Kumar Sangakkara struck 112 for his 19th ODI century as Sri Lanka posted 300-9 to set England a tough target at Lord's.
Buttler came in with his team unraveling on 111-5 but took England to the brink of victory with a 61-ball century, sharing a sixth-wicket partnership of 133 with Ravi Bopara (51).
England required 12 off the last over to clinch the series, but wily paceman Lasith Malinga took the wicket of Chris Jordan and then ran out Buttler with a masterful over of line and length to claim figures of 3-52.
The 5th ODI takes place at Edgbaston on Tuesday.