Ben Stokes' half-century proved to be in vain as England suffered a shock 20-run defeat against Sri Lanka.

The all-rounder, from Cockermouth, was left stranded on 82 with Nuwan Pradeep dismissing Mark Wood to seal the victory for the Sri Lankans.

At Emerald Headingley, Angelo Mathews led the way for Sri Lanka with 85 not out, supported by Avishka Fernando (49) and Kusal Mendis (46), with Sri Lanka ending their 50 overs on 232-9.

With the ball, Stokes bowled five overs and ended with figures of 0-16, with Jofra Archer (3-52) and Wood (3-40) sharing six wickets between them.

England would have been confident of chasing that total down but found themselves 73-3 after James Vince (14), Jonny Bairstow (0) and captain Eoin Morgan (21) had been dismissed cheaply.

But Joe Root (57) and Stokes put on a 63-run partnership before Root was dismissed by veteran fast bowler Lasith Malinga who ended with figures of 4-43.

Wickets then fell regularly around Stokes and, despite the 28-year-old edging England towards an unlikely win in a last-wicket stand with Wood, Wood was caught by keeper Kusal Perera as England were beaten.

England's next World Cup match is against Australia at Lord's on Tuesday.