Liam Plunkett was on a hat-trick for the second time in the match, but England nonetheless endured an awkward fourth morning in the second Investec Test at Headingley.
Plunkett (four for 82) made short work of Dinesh Chandimal and then Dhammika Prasad, but Sri Lanka captain Angelo Mathews (79no) and Mahela Jayawardene (79) ensured nonetheless there will be a tricky chase for England to win here and seal the series 1-0.
Plunkett took his match haul to nine wickets - yet thanks principally to Mathews, Sri Lanka still reached a lunchtime 311 for seven and overall advantage of 203.
James Anderson gave the hosts their solitary success in the first hour of a sunny morning.
There was little sign of significant deterioration in the pitch, save very occasional variable bounce, but the suspicion was nonetheless that England's bowlers did not initially make the most of conditions either.
They had an especially poor first 30 minutes, in which Jayawardene and Mathews helped themselves to 40 runs in seven overs.
There was no immediate improvement with the new ball either, Anderson curiously short and often wide rather than more conventionally attacking off stump.
Jayawardene was then dropped at gully by Ian Bell after a faulty cut at Stuart Broad.
The missed chance cost nothing, however, because Anderson profited from pitching the ball up in his next over - Jayawardene edging a drive behind to be neatly caught, without addition, by Matt Prior.
He had hit eight fours, held England up for 168 balls and shared a fifth-wicket stand of 92 with Mathews, but there was to be no such resistance from the next two batsmen as Plunkett went short to better effect.
Chandimal pulled him straight to deep square leg, and then Prasad's upper-cut at the next ball was very well caught by a tumbling Joe Root at third man.
Mathews had failed to cross on the first occasion, but managed to do so second time and had little difficulty dealing with the hat-trick ball.
He reached his 50 in 81 balls, then upped the ante against Plunkett - walking at England's fastest bowler and smashing him for six over midwicket.
Mathews also closed out the session confidently with Rangana Herath, who brought up the 200 lead by pulling Broad for four just before lunch.