Last man out was silver fox Rangana Herath, cricket's most successful left-arm spinner in history, in his last match before retirement.
The hosts, chasing a notional 462 victory, were all out for 250 on day four, with Moeen Ali taking four wickets and Jack Leach three.
England had secured a first innings lead of 139 and on Thursday an unbeaten 146 by Keaton Jennings, his first century since a ton on his 2016 debut, allowed Root to declare at 322 for six.
Fifteen without loss overnight, openers Kaushal Silva and Dimuth Karunaratne withstood the pressure from England's formidable bowling attack for the first hour.
But both fell after attacking shots, with Kaushal leg before trying to sweep Leach for 30 and Karunaratne caught and bowled by Ali for 26 and skipped down the pitch for an attempted heave.
Dhananjaya de Silva, after a confident start, was caught at first slip by skipper Joe Root off Ben Stokes in the last over of the morning session for 21.
One ball earlier, de Silva had been given out caught behind flashing at a Stokes delivery wide of the off stump, but he was reprieved on review.
After lunch Kusal Mendis hit Leach for four over his head but attempting a repeat the next ball skied the ball to Ali and departed for 46.
He had earlier appeared confident at the crease, employing the sweep shot especially well against all England's spinners, while secure in defence.
Home skipper Dinesh Chandimal, suffering from a groin injury that kept him off the pitch all of Thursday, was bowled by Leach for 11.
The final session began badly for the hosts. Niroshan Dikwella fell the first ball after tea, caught adroitly by Stokes one-handed at slip off Ali for 16.
Soon afterwards Angelo Mathews -- dropped on 18 by James Anderson -- went for 53, caught by Jos Buttler at midwicket with Ali again the wicket-taker.
He was followed into the pavillon by Akila Dananjaya for 8 before Herath was run out for five.
England's varied attack, with three quicks and three spinners, applied substantial pressure, with the slightly expensive Adil Rashid the only disappointment so far.