Liam Plunkett took two wickets in two balls but drew a blank against Kumar Sangakkara, who rode his luck at Headingley to reach his sixth consecutive Test half-century.
Alastair Cook put Sri Lanka in under initial cloud cover in this second Investec Test, a potential series decider after the last-ditch draw at Lord's, yet England's seam attack had to work hard as the skies gradually brightened.
A teatime 182 for five was a degree of vindication nonetheless for Cook's decision, thanks principally to Plunkett (three for 47) and James Anderson.
England's progress might easily have been quicker, with lateral movement in the air and occasionally off the pitch making batting no easy occupation.
They managed two morning wickets, those of openers Kaushal Silva and Dimuth Karunaratne - respectively caught behind off Anderson, after a cagey first hour, and then bowled leg stump by a searing Plunkett inswinger from around the wicket.
Number three Sangakkara (67 not out) had a run-out scare on nought and then might have been caught behind on 16 off Plunkett had England appealed for an apparent faint edge.
He was reprieved for the third time on 27, edging Plunkett behind again, only for the ball to go straight through Matt Prior's gloves, pop up off his chest and to ground.
Mahela Jayawardene had only five when his hook at Plunkett did not stick as Ian Bell jumped high at leg slip, and the third-wicket stand had added 52 either side of lunch when Plunkett's double intervention gave England fresh momentum on his new home ground following his move from Durham last year.
Jayawardene was pushing slightly away from his body and was brilliantly caught one-handed low down to his right by a diving Chris Jordan.
Then the next ball was too good for Lahiru Thirimanne, fenced straight to short leg.
Sangakkara and Angelo Mathews needed to dig in at 108 for four, and duly did so in another 50 stand until the returning Anderson had the Sri Lanka captain edging low to be neatly caught by Gary Ballance at third slip.
There was another escape around the corner, however, for Sangakkara - who had passed his half-century in 106 balls before cutting Jordan high to point, where Moeen Ali could not hold a tough chance.