England made strides towards a big victory in the first Test in Galle on Friday, removing Sri Lanka's top three before lunch on the fourth day as thunderstorms held off.
Set a gargantuan 462 for victory, the hosts ended the morning session on 98 for 3, after their openers had earlier batted out the first hour of play.
But Kaushal Silva went leg before to Jack Leach for 30 and Dimuth Karunaratne was caught and bowled by fellow spinner Moeen Ali for 26, both dismissals the result of attacking strokes.
Dhananjaya de Silva, who had made a confident start to his innings, was caught at first slip by skipper Joe Root off Ben Stokes in the last over of the session for 21. One ball earlier, de Silva had been given out caught behind flashing at a Stokes delivery wide of the off stump, but he was reprieved on review.
England's varied attack, which features three seamers and three spinners, probed persistently through the morning as captain Root employed attacking field placements. Home skipper Dinesh Chandimal is unable to bat any higher than number seven because of a groin injury that kept him off the field for all of Thursday, weakening Sri Lanka's batting order.
With five further sessions to play and only seven wickets to get, England will be confident of victory. No team has batted more than 114 overs in the fourth innings in Galle.
More From This Section
Stokes said before the day's play that he expected Moeen, Leach and Adil Rashid to do the most damage, with the ball spinning more quickly off the pitch as the match has progressed.
"If our spinners can get the ball in the right area on a consistent basis then I think it's going to make it really hard work for the Sri Lankans," the Durham all-rounder said.
England secured a first innings lead of 139 and on Thursday an unbeaten 146 by Keaton Jennings, his first century since a ton on his 2016 debut, allowed Root to declare at 322 for six.