Joe Root struck a brilliant 186 and Lasith Embuldeniya picked up seven wickets as England reached stumps on day three on 339-9, still trailing Sri Lanka’s first-innings total by 42 runs.
The second and final Test match remains evenly poised after another enthralling day’s play in Galle.
Root’s impressive form with the bat in Sri Lanka continued and he once again led the visitors’ fight back.
Resuming on 98-2 on Sunday morning, Embuldeniya struck early with the wickets of Jonny Bairstow (28) and Dan Lawrence (3).
At 132-4 England were desperate for a big partnership and Jos Buttler provided the necessary assistance for Root as the two began to score frequently.
Their 97-run stand was broken when Buttler departed in the most bizarre fashion for 55, caught at short leg off his boot trying to reverse sweep a Ramesh Mendis delivery.
In the meantime, Root kicked on and reached a 19th Test century, his fourth against Sri Lanka, which he patiently converted into another big-scoring opportunity.
A masterclass in progress. 1️⃣5️⃣0️⃣
— England Cricket (@englandcricket) January 24, 2021
Embuldeniya continued to keep the Sri Lankans in the contest, however, grabbing three more wickets of Sam Curran, Dom Bess and Mark Wood.
In another bizarre moment, Root was then run out by Oshada Fernando at short leg for a well-played 186. His wicket also brought an end to the day as Embuldeniya finished the pick of the bowlers with excellent figures of 7-131.
Jack Leach and James Anderson will restart again on Monday, hoping to stay out in the middle for as long as possible.