With just a week left for the tour of India, England skipper sounded a warning slamming 186 runs, to lead the touring side ever closer to Sri Lanka's first-innings total as they finished day three on 339 for nine, just 42 runs behind on Sunday.
However, Root's innings ended in the last over of the day when he was run out, short of another double hundred.
Sri Lanka's bowlers had no answer for the Yorkshireman and it appeared inevitable that he was only going to be dismissed through a run-out.
Root faced 309 deliveries and hit 18 fours in his monster innings.
Root attempted to flick Dilruwan Perera to mid-wicket but the thick edge was grabbed by Oshada Fernando at short leg on the bounce. Root had taken a few steps out of the crease and sensing an opportunity Fernando threw the stumps down as a tired Root's diving effort couldn't save him.
Left-arm spinner Lasith Embuldeniya finished with a seven-wicket haul but the day belonged to the England captain, who put up a splendid show of character and determination in batting for more than eight hours. He had posted a double hundred in the first test that England won by seven wickets.
Not since West Indian Brian Lara's exploits in Galle in 2001 when he scored 688 runs in six innings, had a batsman played spin bowlers so expertly. Root now has 415 runs in three innings.
The sweep shot was Root's bread and butter and he executed it to perfection, finding gaps frequently despite Sri Lanka having three fielders in the leg-side boundary.
The 30-year-old reached his 19th Test hundred in the morning and during his knock went past the run tallies of three former England greats – David Gower 8,231, Kevin Pietersen 8,181 and Geoffrey Boycott 8,114.
Root, playing in his 99th test match, now has 8,238 test runs and is fourth among England batsmen.
Apart from Embuldeniya, the rest of Sri Lanka's bowling failed to impress, with off-spinner Dilruwan Perera failing to pick up a wicket despite the 38-year-old bowling 32 overs.
England resumed from the overnight score of 98 for two and lost Jonny Bairstow (28) and Daniel Lawrence (3) early. Vice-captain Jos Buttler (55) added 97 runs for the fifth wicket with Root.
An 81-run stand for the seventh wicket between Dominic Bess (32) and Root took England's total to 333 for six. But Sri Lanka struck back, taking three wickets for six runs late in the day to reduce the tourists to 339 for nine.