England 290 (Curran 64, Buttler 63, Dilruwan 4-61) and 324 for 9 (Root 124, Burns 59, Foakes 51*, Dananjaya 6-106) lead Sri Lanka 336 (Silva 85, Karunaratne 63, de Silva 59, Leach 3-70, Rashid 3-76) by 278 runs
Kandy: England captain Joe Root hit a majestic century to put his side in a strong position to win the series against Sri Lanka on day three of the second Test.
Root dominated the spinners, scoring freely to reach his 15th Test ton and first away from home since replacing Alastair Cook as skipper last year.
He fell lbw for 124 to Akila Dananjaya (6-106) but Ben Foakes made 51 not out to take England to 324-9 and a lead of 278 runs when bad light stopped play.
England lead the three-Test series 1-0.
Opener Rory Burns scored his maiden Test fifty, putting on 73 with Keaton Jennings (26) in the morning after nightwatchman Jack Leach was dismissed early on.
Sri Lanka hit back to reduce England to 109-4 but Root, Buttler (34) and Foakes built an imposing target in Pallekele, despite the pitch perhaps not being as difficult to bat on as first thought.
Although seven of England's nine wickets came from sweep or reverse sweep shots, their attacking approach flustered the hosts and has taken the tourists a step closer to a first series win in Sri Lanka since 2001.