Riding on half-centuries from skipper Alastair Cook, Jonathan Trott and Joe Root, England put up a massive 293-7 from their 50 overs.
The English team had the upper hand for most part of the game. However, the complexion of the game changed once Lasith Malinga struck with a couple of quick wickets.
But some late hitting by Ravi Bopara, who plundered inexperienced Shaminda Eranga for 28 runs from the final over, saw England cross the 280-runs mark.
Sri Lanka faced an initial hiccup during the chase, losing Kushal Perera early. But Dilshan and Sangakkara steadied the ship, before Dilshan was holed out in the deep to Graeme Swann.
Mahela Jayawardene, propelled Sri Lanka’s chances, stitching a crucial 85-run stand with Sangakkara, for the third wicket.
When Jayawardene was dismissed for well made 42, Sri Lanka required 107 runs with 15 overs to go.
The match was poised beautifully, and then the Lankan management played a masterstroke – they promoted Nuwan Kulasekara up the order in the batting Power Play.
With his pinch hitting, Kulasekara took the game away from the hosts, which eventually turned out to be the turning point of the match.
He was particularly severe on Tim Bresnan and Graeme Swann. Kulasekara first hit two boundaries off Bresnan, and then clobbered Swann for consecutive sixes, which brought the asking rate well within range.
He then smashed Broad for a six and a couple of fours to bring up his half-century in 29 balls.
Sangakkara, in the process, also brought up his century and Kulasekara-Sanagakkara shared a match-winning partnership 110 off just 71 balls.
Photograph: Paul Gilham/Getty Images