England skipper Joe Root hit an attacking century to counter Sri Lanka's spin and push the tourists' second-innings lead past 200 in the second Test on Friday.
Root took on the spin challenge to register his 15th Test ton soon after the tea break as he raised his bat to a standing ovation from travelling English fans in Kandy.
The tourists were 264 for six, stretching their lead to 218 after one over of the final session with Ben Foakes, on 19, batting alongside Root, on 103 off 121 deliveries.
The star batsman built crucial partnerships including a 74-run fifth wicket stand with Jos Buttler, who made 34. England lead the three-match series 1-0.
Root, along with other England batsmen, used the sweep and reverse sweep to great effect despite Akila Dananjaya taking two of his three wickets in a fast-paced second session of play.
Buttler dragged one of Dananjaya's mystery spin deliveries onto his stumps while trying to reverse sweep. Moeen Ali was trapped lbw for 10 after failing to connect with an attempted sweep.
Earlier the left-handed Rory Burns, who is playing just his second international match, registered his maiden Test half-century before being trapped lbw off Malinda Pushpakumara for 59.
Dilruwan Perera had wasted little time in sending nightwatchman Jack Leach back to the pavilion for one in just the second over of the day.
Burns then put together 73 runs for the second wicket with Keaton Jennings, who made 26, to steady the innings and help England overcome their 46-run deficit.