Lasith Malinga and Angelo Mathews played key roles in Sri Lanka's stunning 20-run World Cup win over England that revived the race for semi-final berths at Headingley on Friday. England were all but out of the match after slumping to 186-9 as they chased 233 for victory. Ben Stokes' blistering 82 not out off 89 balls, including seven fours and fours sixes, got them to within sight of their target. But Stokes' gamble on giving Durham team-mate Mark Wood a ball to face at the end of a Nuwan Pradeep over backfired when the No.11 was caught behind as Sri Lanka won with three overs to spare.
Victory would have seen hosts England, bidding to win the World Cup for the first time, go top of the 10-team table.
But instead their second surprise loss of the round-robin group stage after a 14-run defeat by Pakistan, left them in third place, with Sri Lanka now just two points adrift of the pre-tournament favourites.
The top four at the end of the first phase qualify for the semi-finals, with England's next match against arch rivals Australia -- the table-toppers and reigning champions -- at Lord's on Tuesday now even more important to their hopes of a last four place.
Earlier, Mathews' painstaking 85 not out of 115 balls, with just five fours, helped Sri Lanka recover from a top-order collapse to finish on 232-9.
That seemed a below par total but with paceman Malinga taking 4-43 and off-spinner Dhananjaya de Silva following up with three wickets in quick succession, it proved more than enough as Sri Lanka enjoyed another memorable day at Headingley -- the ground where they sealed their first Test series win in England five years ago.
Malinga, renowned for his unorthodox 'slingshot' action dismissed Jonny Bairstow for a golden duck.
James Vince (14), deputising for the injured Jason Roy, then fell in familiar fashion when an edged drive off Malinga was caught by Mendis at slip.
England captain Eoin Morgan, fresh from his one-day international record 17 sixes against Afghanistan, made a cautious 21, featuring a mere two fours, before Isuru Udana held a sharp return catch to dismiss the Dubliner.
Joe Root made a patient 57 off 89 balls featuring just three fours.
But a fourth-wicket stand of 54 with Stokes ended when Root was caught behind down the legside off Malinga, who then produced a trademark toe-crushing yorker to have dangerman Jos Buttler lbw.
Stokes badly needed someone to stay with him. But he could only watch as de Silva took three wickets for three runs in nine balls.
Moeen Ali marked his 100th one-day international by hitting a six, only to hole out irresponsibly off the next ball from de Silva trying to repeat the shot.
Stokes should have been out for 57 when he hoisted Malinga to deep square leg, but Mendis dropped the catch.
That was the cue for a furious assault by Stokes, the all-rounder hitting two sixes in as many balls off Udana, but Wood was the last man to fall as England's chase fell short on 212.
Earlier, England fast bowler Jofra Archer took 3-52 to join Australia's Mitchell Starc as the leading bowler at this World Cup with 15 wickets.
Archer had opener Dimuth Karunaratne caught behind for one after the Sri Lanka captain had won the toss.
Two balls later, without another run on the board, Sri Lanka were three for two Perera slashed Chris Woakes to Moeen at third man.
But Avishka Fernando, in his first match of the tournament, revived the innings with a dashing 49 that saw him hit 14 runs off just one Archer over.