Colombo - Sri Lanka limped to 53-4 on Sunday as they battled to reach 327 to win the third and final Test against England and avoid a series whitewash.
Moeen Ali opened the bowling for England and took openers Danushka Gunathilaka for 6 and Dimuth Karunaratne for 23 on the spin paradise pitch in Colombo.
Jack Leach claimed Dhananjaya de Silva, who failed to score, while Ben Stokes took a brilliant catch off fast bowler Stuart Broad to end Angelo Mathews' innings after nine balls which produced five runs.
Earlier England made 230 in their second innings after at one stage looking shaky on 39-4.
Jos Buttler top-scored with 64, while Stokes hit 42 and Ben Foakes 36 not out to leave Sri Lanka facing a mountain to climb with two days left to play.
Dilruwan Perera took Keaton Jennings lbw with the first ball of the day to shake England, and took five wickets in all. But after the top order scare, spinner Lakshan Sandakan made two basic blunders that set the tone for the tourists' recovery.
The left-arm spinner had Stokes caught at cover on 22, then at slip on 32, only for replays to show Sandakan had overstepped the bowling line on each occasion.
England scored 336 in their first innings and Sri Lanka 240.