Just days after they'd been shot out for 67 during a 10-wicket defeat at Old Trafford, Sri Lanka made 300 for nine after being sent into bat on Saturday. (Agencies)
Sangakkara's 112 -- his first hundred at Lord's in any format -- was the centrepiece and together with Tillakaratne Dilshan (71), he put on 172 for the second wicket after they'd managed just 15 runs between them in Manchester.
England needed what would have been their joint second-highest total to win a one-day international.
But their pursuit of a victory target of 301 was rocked immediately when Lasith Malinga reduced England to 10 for two by removing captain Alastair Cook and Ian Bell.
But Jos Buttler, who came in with England in dire straits at 111 for five, brought the hosts back into the match with a brilliant maiden ODI hundred, the fastest ever scored at Lord's.
Together with Ravi Bopara (51), the man-of-the-match shared a sixth-wicket stand of 133 that left England eyeing a remarkable win.
England got the target down to 20 off two overs and then 12 off the last one, bowled by Malinga.
Buttler took a first-ball single but Chris Jordan then drove Malinga straight to Dilshan at long on.
Buttler then took two only to be run out for 121 off the fourth ball when he dug out a yorker straight back to Malinga.
A target of nine off two balls was beyond new batsman James Tredwell and Malinga, who took three for 52 had again proved himself a superb 'death' bowler.
Earlier, Sangakkara's 19th ODI century saw the 36-year-old take 13 balls to get off the mark.
But such was the composure and experience of the left-hander, playing his 373rd match at this level, he never looked flustered.
Sangakkara found his touch in the 18th over with three boundaries in successive balls from Joe Root.
Just days after they'd been shot out for 67 during a 10-wicket defeat at Old Trafford, Sri Lanka made 300 for nine after being sent into bat on Saturday.