James Anderson took six wickets to help bowl Sri Lanka out for 381, but England's openers failed again as the tourists closed the second day of the second and final Test on 98 for two in reply at Galle International Stadium Saturday.
Joe Root scored a breezy, unbeaten 67 and will resume on the third morning with Jonny Bairstow, who has 24. The pair have put on 93 for the third wicket at a rate of more than four runs per over to dig the tourists out of some early strife.
Sri Lanka left-arm spinner Lasith Embuldeniya (2/33) quickly bagged the wickets of England openers Dom Sibley (nought) and Zak Crawley (five), maintaining his dominance over the pair having also dismissed them in both innings in the first test.
Sibley was trapped leg before wicket and Crawley edged to first slip.
The two have managed just 28 runs in six innings between them this series, a worry for the tourists as they head to India for four Tests on completion of this match.
Bairstow and Root employed the sweep to excellent effect as a counter-attack measure, the latter having also punished Sri Lanka with the stroke in his 228 in the first Test.
It took England 139.3 overs to finally dismiss the home side after they elected to bat, with Anderson the chief wicket-taker with 6/40 in 29 overs.
Sri Lanka had frustrated the tourists with their tail, the final four wickets adding 138.