Kumar Sangakkara smashed an unbeaten 134 off 135 balls as Sri Lanka stunned England by seven wickets in a high-scoring thriller on Thursday to stay afloat in the Champions Trophy.
The Islanders, chasing England's seemingly impregnable 293-7, launched a spirited chase in the day-night game at the Oval to surpass the target in 47.1 overs and throw open the semi-final race from group A.
Chasing 294 in a Group A clash at The Oval here on Thursday, Sri Lanka achieved the target with considerable ease and 17 balls to spare thanks to Sangakkara's brilliant innings.
The left-hander was well supported by Tillakaratne Dilshan (44), Mahela Jayawardene (42) and Nuwan Kulasekara.
After losing Kusal Perara (6) early in the third over, Sri Lanka forged three long partnerships to bring them home. Sangakkara struck a 92-run partnership for the second wicket with Dilshan, 85 with Jayawardene and an unbeaten 110-run partnership off 71 balls for the fourth wicket with Kulasekara.
Sri Lanka, who would have been knocked out of the tournament had they lost, are now level with England on two points each, one behind group leaders New Zealand.
Australia, the fourth team in the group, have one point.
The two semi-final spots will be determined after the last round of matches when England take on New Zealand in Cardiff on Sunday and Sri Lanka clash with Australia at the Oval on Monday.
Left-handed Sangakkara, cheered on by a big Sri Lankan contingent in the packed stands, anchored the chase with his 15th one-day hundred that was studded with 12 boundaries.
Pinch-hitter Nuwan Kulasekara, who was sent in at the fall of the third wicket, hit a quickfire 58 not out during a match-winning partnership of 110 from 71 balls with Sangakkara.
Kulasekara, who had two previous one-day half-centuries to his credit, plundered five fours and three sixes that demoralised the England attack.
Seamer James Anderson claimed two wickets, but Stuart Broad went for 67 runs in 8.1 overs and Tim Bresnan gave away 63 runs in 10 overs.
"We needed this win to be honest," said Sri Lankan captain Angelo Mathews, who had called for an improved batting display after his team were shot out for 138 by New Zealand.
"Except for that final over from Eranga, our bowlers came back well on a pitch that played really well.
"And then Sangakkara batted so well. Its great to have a player like that at number three. The management decided to promote Kulasekara because he had been batting well. And it paid off."
Sangakkara put on 92 for the second wicket with Tillakaratne Dilshan (44) and 90 for the third with Mahela Jayawardene (42) to give Sri Lanka the perfect launching pad.
England captain Alastair Cook praised Sangakkara's batting, but hoped his team will bounce back against New Zealand in Cardiff.
"That was obviously an outstanding hundred," Cook said. "Any time you chase 300, someone has to play well. The pitch quickened up a bit, but sometimes you have to give credit where it's due.
"We knew we had to win one of our last two games, hopefully we will come back strongly at Cardiff."
England's total revolved around Jonathan Trott's 76 and Joe Root's 68 off 55 balls after Sri Lanka won the toss and elected to field under overcast skies.
Cook chipped in with 59 and Ravi Bopara smashed 28 runs from the final over after Sri Lanka grabbed four wickets for five runs towards the end to make it 254-7 in the 48th over.
Bopara boosted the total with three sixes, two boundaries and a two in the 50th over sent down by seamer Shaminda Eranga to return unbeaten on 33 off 13 balls.
Root, the victim of what England cricket authorities said was an "unprovoked physical attack" by Australian batsman David Warner in a Birmingham bar over the weekend, hit five fours.
For Sri Lanka, Lasith Malinga, Rangana Herath and Shaminda Eranga clinched two wickets each.