Kumar Sangakkara and Mahela Jayawardene made half centuries overnight as Sri Lanka built a lead of 106 runs over England after finishing day three of the second test on 214-4.
Sangakkara's 55 was his seventh consecutive half century, the fourth player in test history to achieve the feat.
He was dismissed lbw by Moeen Ali, who then removed Lahiru Thirimanne for 0 in his next over at Headingley in Leeds.
Jayawardene is unbeaten on 55 and Angelo Mathews has 24 in a 38-run partnership so far that could determine the match, considering Sri Lanka's vulnerable tail.
Liam Plunkett removed openers Dimuth Karunaratne (45) and Kaushal Silva (13) in the second session.
England began the day on 320-6 and were bowled out for 365 before lunch, a lead of 108.
Should bouncers be banned from cricket?