Chasing 151 for victory in the 21-overs-a-side contest, the tourists rode on an unbeaten 49-ball 58 by skipper Eoin Morgan to achieve their target in 18.3 overs.
Bowlers Adil Rashid and Tom Curran set up England’s comfortable win over Sri Lanka.
Rashid and Curran shared seven wickets between them to restrict Sri Lanka to 150-9 in the 21-overs-a-side contest. The visitors surpassed the total in 18.3 overs to take an unbeatable 2-0 lead in the five-match series.
Skipper Eoin Morgan remained unbeaten on 58 off 49 to give England their second successive win after the opening match was washed out in a series hit by the Sri Lankan monsoon.
The left-handed batting combination of Morgan and Ben Stokes, who made 35, put on an unbeaten 73-run stand for the fourth wicket to blunt the Sri Lankan bowling attack.
Left-arm spinner Amila Aponso took two early wickets including Joe Root for eight to dent England’s chase but opener Jason Roy ensured the runs kept coming quickly from one end. He made 41 off 26 balls.
Earlier put in to bat after nearly six hours of play was lost due to rain, the hosts were off to a breezy start courtesy of a 20-ball 36 from Niroshan Dickwella.
Rashid helped England bounce back with wickets at crucial junctures as he claimed four from his five overs of leg-spin.
The left-handed Dickwella put on 57 runs off 33 deliveries with opener partner Sadeera Samarawickrama, who also made a brisk 35.
Fast bowler Curran got Dickwella caught at mid-off to check Sri Lanka’s surge. Curran returned figures of 3-17 from his four overs.
Rashid hit Sri Lanka hard with the wickets of Samarawickrama and Thisara Perera for nought in consecutive deliveries to be on a hat-trick.
Skipper Dinesh Chandimal played out the hat-trick ball and stayed on to make 34 crucial runs before falling to Curran in the final over.
Sri Lanka now need to win the remaining two matches to at least draw level the series. The fourth ODI is scheduled in Kandy on Saturday.