Sri Lanka, trailing England by 185 runs on the first innings, were 2-84 in their second knock at lunch on the fourth day of the second Test in Colombo on Friday.
Tillakaratne Dilshan was unbeaten on 25 and Kumar Sangakkara eight not out at the break, with the hosts still 101 runs behind with eight wickets in hand.
English seamers James Anderson and Steven Finn took a wicket each.
Lahiru Thirimanne was out first for 11 and nightwatchman Dhammika Prasad made 34.
Kevin Pietersen struck 151 for his 20th Test century on Thursday to take the tourists’ first-innings score to 460 in reply to Sri Lanka’s 275.
England, who lost the first Test in Galle, need a win to level the short two-match series and retain their No.1 ranking.