In response to 381, England reached lunch on 181 for four, with Root still there on 105. They trail by 200.
After losing their openers with the score just five, Root had come in and played a sparkling hand on Saturday, reaching 67 by stumps.
He picked up where he left off on the third day. He got a little lucky in the first over of the day, edging past the keeper, but was virtually flawless from there. He continued to sweep with abandon, and even unfurled a switch hit when the left-arm spinner bowled over the wicket.
Root made a brilliant 228 in the First Test, setting up England’s seven-wicket win. This is the first time he has made centuries in successive Tests and the first time since the 2015 Ashes that he has managed two in a series. It is his 19th in Tests, taking him clear of Michael Vaughan and David Gower and level with Len Hutton.
England lost the wickets of Jonny Bairstow, who put on 111 with Root, and Dan Lawrence, both to Lasith Embuldeniya. The excellent left-arm spinner has all four wickets to fall in the innings, having snared Dom Sibley and Zak Crawley last night. Bairstow was caught off bat and pad on review, while Lawrence edged a lovely delivery to slip.
Root was joined by vice-captain Jos Buttler, putting on an enterprising 49 by the break. Buttler drove nicely, and reverse-swept plenty; he required a review when given out caught playing the shot, but his under-edge hit the ground as well as his boot. It was a poor piece of umpiring from Kumar Dharmasena.