Matthew Hoggard and Monty Panesar each took three wickets as England reduced the SLC Board President's XI to 298-9 on the opening day of their final warm-up match.
It was a welcome boost for both bowlers ahead of next week's first Test, but their strong form was overshadowed by an injury to Steve Harmison, who left the field with a back spasm after three deliveries of his fourth spell.
Harmison was preferred to Stuart Broad and Ryan Sidebottom as part of a three-man seam attack with Hoggard and James Anderson in the starting XI for England's only first-class warm-up fixture.
Off-spinner Graeme Swann also looks set to miss out on the first Test after Panesar was selected as the solitary slow bowler - a strong hint as to England's thinking for the series opener in Kandy, which has the reputation as the most seam-friendly of the Sri Lankan Test grounds.
The other selection issue concerns the sixth batting spot - England opted to rest Paul Collingwood in order to allow the two contenders, Ravinder Bopara and Owais Shah, to go head-to-head.
Upul bears fruit
Upul Tharanga, who made a century against England in the first warm-up contest earlier this week, again starred for the hosts with 86.
Hoggard made the first breakthrough when Tharanga's opening partner Mahela Udawatte (18) miscued to mid-on, where captain Michael Vaughan held the catch diving forwards to end an opening stand worth 55.
And the hosts were reduced to 79-2 when Malinda Warnapura (16) edged behind from a Bopara inswinger.
SLC Board President's XI captain Tillakaratne Dilshan, who was omitted from the 14-man Sri Lanka squad for the first Test, raced to 23 but fell shortly after lunch when he hit a Harmison bouncer to mid-on.
Anderson claimed his first wicket of the day when fine low catch from Ian Bell at first slip denied Tharanga a century.
And when Chamara Kapugedera, another of the centurions in the first President's XI match, clipped to a sprawling Bopara at midwicket off Hoggard, the hosts were 182-5.
But England's progress was frustrated by a 105-run, sixth-wicket stand between Jehan Mubarak and Kaushal Silva that spanned 29 overs.
It took a neat reaction catch from Alastair Cook at short-leg off Panesar's bowling to break the stand as he scooped up a bat-pad opportunity to dismiss Silva (53).
Panesar made it two in two deleiveries by trapping Kaushal Lokuarachchi lbw playing back.
Hoggard removed Mubarak, who edged low to Matt Prior for 68, and Cook launched himself full length to claim a second close catch off Panesar just before bad light ended play early.