Galle - Graeme Swann claimed six wickets as England reduced Sri Lanka to 151 for eight in their second innings at lunch on the third day of the first Test in Galle on Wednesday.
But the hosts hold the edge with an overall lead of 276 runs with two wickets in hand on a dry pitch at the Galle International Stadium that is making batting progressively difficult.
Prasanna Jayawardene was unbeaten on 23 and Chanaka Welegedara was on six.
England, the world's top-ranked Test team, will need to defy history if they are to win the match and take the lead in the two-Test series.
The highest fourth-innings total at Galle is 253 made by Sri Lanka in a losing cause against Australia last year. The winning fourth-innings chase was Sri Lanka's 96-0 against India in 2010.
Swann bagged two of the three wickets that fell in the morning session after Sri Lanka resumed at Tuesday's score of 84-5.
The overnight pair of Dinesh Chandimal and Suraj Randiv took their sixth-wicket partnership to 42, before both batsmen fell in the space of one run.
Chandimal, who made 31, gifted his wicket for the second time in the match when he attempted a big shot off Monty Panesar and only managed to sky a catch to Kevin Pietersen at mid-off.
Randiv was declared leg-before by the TV official after he challenged on-field umpire Asad Rauf's decision, giving Swann his fifth wicket in the innings.
Rangana Herath became Swann's sixth victim when he was bowled trying to sweep the off-spinner, reducing Sri Lanka to 127-8.