Root’s 93 was the most substantial of three half-centuries – James Vince hit the other, in his first one-day international innings – as England set a target of 324 for seven.
Then the home attack made short work of the tourists’ response, David Willey bagging a career-best four for 34 and Liam Plunkett taking three for 44.
Sri Lanka were bowled out for 202 with 7.2 overs unused, despite the best efforts of Dinesh Chandimal (53) – and England went above them into fifth in the International Cricket Council rankings.
Vince (51) and Jason Roy began well on a showery morning, after Sri Lanka won the toss.
But as Danushka Gunathilaka recorded career-best figures of three for 48, it was not until Buttler (70) brought the impetus in a stand of 109 with Root that England were able to profit properly.