England, 42-2 when Root came in to bat, reached stumps on 358-7. The star batsman made 143 - his sixth Test century at the 'Home of Cricket'.
No other England top-order batsman made more than Ben Duckett's 40.
But fast bowler Gus Atkinson was 74 not out at the close - his maiden Test fifty in just his fifth match at this level - after providing Root with excellent support in a seventh-wicket stand of 92 in 19 overs.
"I think we have had a really good day," Root told Sky Sports. "Hopefully we can carry that on now and over 400 would be a really good total."
Root's 206-ball innings saw him equal the England record of 33 Test hundreds held by the retired Alastair Cook.
"I had to be quite patient and they bowled well for periods of time," said Root, who made his Test debut in 2012.
'Good balance'
Long freed from the burden of captaining England, he added: "I am very much in a really good place at the minute, I am really enjoying everything, I have got a good balance of things."
All of Sri Lanka's pace trio took two wickets on Thursday, with Lahiru Kumara leading the way with 2-75 in 20 overs after being recalled in place of Vishwa Fernando following England's five-wicket win in last week's first Test at Old Trafford.
Sri Lanka fast-bowling coach Aaqib Javed praised the seamers' efforts, while being disappointed that England had recovered from 216-6.
But the former Pakistan paceman Javed lauded Kumara by saying: "He bowled 90 mph (145 kmh) and that's what you want from a fast bowler. It was pleasing to see."
Earlier, Ollie Pope was out in single figures for his third successive innings as England's stand-in captain, with Sri Lanka taking three wickets before lunch after winning the toss.
Sri Lanka captain Dhananjaya de Silva decided to field as his side sought to level the three-match series.
It looked like a questionable move when left-handed opener Duckett scored three fours in an over off Asitha Fernando.
But makeshift opener Dan Lawrence fell for nine, caught behind off Kumara.
Pope, twice out for six at Old Trafford in his debut match as England skipper in place of injured Ben Stokes, had made one when he top-edged a pull off Fernando. De Silva held a well-judged catch running back from square leg.
Not for the first time in his 145-Test career, Root, fresh from a match-clinching 62 not out in the first Test, came in with the innings in the balance.
On 11 he was rapped on the pad by a full-length Kumara delivery. But Paul Reiffel denied Sri Lanka's lbw appeal and his decision was upheld on review by umpire's call.
No reviews were needed, however, when left-arm spinner Prabath Jayasuriya struck with just his fourth ball, Duckett top-edging a reverse scoop to Kumara on the boundary as a 47-ball 40 came to a disappointing end.
At lunch, England were faltering at 97-3.
Root shared stands of 48 and 62 with Harry Brook (33) and wicketkeeper Jamie Smith (21).
Chris Woakes carelessly pulled Fernando straight to long leg on six to leave England 216-6.
Root, 81 not out at tea, spent 12 balls on 99 before elegantly guiding the paceman for four between slip and gully to complete a hundred with his 13th four in 162 balls faced.
He moved into joint-10th place in an all-time list of Test century-makers headed by India's Sachin Tendulkar, who scored 51 hundreds in 200 Tests.
After batting in largely classical fashion, Root was out when he skyed an unorthodox ramp off Milan Rathnayake to Pathum Nissanka, with England then 308-7.
Atkinson, who drove Jayasuriya for two superb straight sixes, went to fifty in just 61 balls when he cover-drove fast bowler Rathnayake for a textbook four.
The 26-year-old took a toll on the new ball too, pulling Kumara for six over midwicket.