|Third one-day international, Pallekele|
|Sri Lanka 150-9 (21 overs): Dickwella 36; Rashid 4-36|
|England 153-3 (18.3 overs): Morgan 58*, Roy 41|
|England beat Sri Lanka by seven wickets|
England outclassed Sri Lanka to win a rain-affected third one-day international by seven wickets and take a 2-0 series lead with two games left.
The match was reduced to 21 overs per side after a six-hour rain delay.
Sri Lanka slipped from 57-0 to make 150-9, with Adil Rashid taking 4-36 and Tom Curran 3-17 in Pallekele.
Captain Eoin Morgan hit 58 not out and Jason Roy 41 as England comfortably chased down the target with 15 balls remaining.
Opener Roy had got the innings off to a quick start with his 26-ball knock after Jonny Bairstow and Joe Root fell early.
Ben Stokes finished unbeaten on 35 to help England to victory alongside Morgan as the match finished at 23:30 local time.
England can seal a series victory in the fourth ODI at the same ground on Saturday.
- TMS podcast: Another soggy English victory, and Swanny's Strictly secrets
- ECB defends touring Sri Lanka during monsoon season
Rashid & Curran star with the ball
The heavy defeat for Sri Lanka came despite their openers making a rapid start.
Niroshan Dickwella led the early onslaught, hitting eight fours in a 20-ball 36, with Olly Stone and Chris Woakes being hit for nine boundaries in the first three overs.
The hosts were 57-1 in the sixth over when Dickwella was dismissed by Curran, caught at mid-off attempting to hit another boundary, but afterwards England impressively pulled back the scoring rate.
From his second ball, Rashid bowled Kusal Mendis for a duck with a beautiful googly and later dismissed Sadeera Samarawickrama (35) and Thisara Perera (0) in consecutive balls - the latter falling to a fine high catch from Roy at long-on.
Dasun Shanaka dented Rashid's figures slightly, with a four and a six in the leg-spinner's final over which cost 14, but Rashid responded by bowling the right-hander for 21; another googly claiming his fourth wicket.
Curran, recalled in place of the injured Liam Dawson, returned at the death after a good opening spell and was equally impressive.
He mixed up his pace with slower balls and conceded just three runs in the final over of the innings. The Surrey all-rounder also had Sri Lanka captain Dinesh Chandimal caught at short fine leg and completed the run-out of Amila Aponso off the final ball.
That completed England's fightback with Sri Lanka only scoring 95 runs from their last 16 overs, having hit 55 from the first five.
Morgan leads comfortable chase
With an imposing batting order that has taken England to number one in the world rankings, Sri Lanka's target never looked enough.
That view was strengthened further when Lasith Malinga started the innings with two wides and Roy smashed the seamer for a six in an opening over which cost 17 runs.
Bairstow chipped Amila Aponso to mid-off for four and Joe Root was bowled by the left-arm spinner for eight shortly after but England were still always able to find the boundaries.
Roy and Morgan added 46 together, hitting Malinga for 12 when he returned for his second over, while Roy also smashed a big six over long-off.
It came as a surprise when Sri Lanka successfully overturned an lbw decision to dismiss Roy in the ninth over, with the delivery from Akila Dananjaya originally looking to be going on to miss leg stump.
That left Morgan to steer the run-chase and he did so with ease, bringing up a fourth half-century in four completed matches.
The England captain added 73 with Stokes, the Durham all-rounder batting calmly until the final stages when he paddled a six over fine-leg off Nuwan Pradeep and launched Aponso into the stands to seal the win.
'England were Premier League, Sri Lanka were League One' - what they said
England captain Eoin Morgan: "I can't praise the bowlers enough for the work they've done. To restrict them to 150 on a surface like this, which was so good to bat on, and what seemed like a very fast outfield, was a fantastic job.
"There's a lot of disappointed guys in that changing room that haven't played today. Competition for places is really high, which creates a really healthy atmosphere."
Man of the match Adil Rashid, who took 4-36 for England: "It came out nicely - it felt good. I've got a simple gameplan to mix it up. The ball got a bit wet towards the end of the innings, but you've got to find a way."
England bowler Tom Curran, who took 3-17: "Sometimes with the strength and depth we have in the squad, you sometimes come in and get one or two games to impress. So it's nice to come in and make an impact."
Sri Lanka's Thisara Perera: "We didn't put in a good batting performance, including myself. We had to get more runs on the board so we can put pressure on England. We were 30-35 runs short."
BBC Radio 5 live's Henry Moeran in Kandy: "This felt a bit like one of those FA Cup ties between sides several divisions apart. England were the classy Premier League side, all tidiness in the field and intensity in running. Sri Lanka looked a bit League One."