Skipper Joe Root held fort on 137 as England reached 252 for six at tea against Sri Lanka on day three of the second Test in Galle on Sunday.
The tourists still trail by 129 runs in response to Sri Lanka's first innings total of 381.
Sri Lankan spinner Lasith Embuldeniya claimed his fifth wicket as he had Sam Curran caught at first slip for 13 and the umpires called for the break.
Root, who completed his second successive ton before lunch, put on 97 runs for the fifth wicket with wicketkeeper-batsman Jos Buttler before Sri Lanka broke through.
Debutant Ramesh Mendis took his first international wicket when he dismissed Buttler for 55 after the batsman's reverse sweep hit his boot and the ball lobbed for an easy catch to short leg.
Buttler survived a similar call in the morning session when replays showed his shot had hit the boot and ground, and he went on to register his 18th Test fifty.
Root, who hit a match-winning 228 in the first Test and started the day on 67, stood firm and consolidated for his 19th Test ton in his 99th match.
Embuldeniya struck twice early in the day with his left-arm spin, including the key wicket of Jonny Bairstow, to break a 111-run third-wicket stand with Root.
Bairstow, who added just four more to his overnight 24, was given not out by the umpire but Sri Lanka successfully reviewed the call as replays suggested the ball had grazed the bat before hitting the pad and being caught second slip.
Root reached his hundred with a single off Dilruwan Perera and raised the bat to an applauding dressing room and lone England fan standing on the ramparts of the fort overlooking the picturesque ground.