England spinner Ashley Giles took three wickets as Sri Lanka made 138 for four on a rain-shortened first day of the first Test on Tuesday.
England took the initiative away from their hosts after a two-hour break for rain, taking three wickets for 49 runs in the final 25.2-over session of the day.
Giles, who struggled for form and rhythm in Bangladesh after remodelling his action, took two wickets for one run during a five-over spell before play was called off because of bad light.
The stylish Kumar Sangakkara was 39 not out, having hit six fours, with Thilan Samaraweera at the other end.
The hosts, having won the toss on a flat pitch expected to offer extravagant turn later, began well as Sanath Jayasuriya and Marvan Atapattu put on 76 runs for the first wicket, while also passing 3000 test runs as an opening pair.
Giles, though, broke through with his 11th ball of the series as Jayasuriya was caught at bat-pad.
The former skipper, who was becoming ever more fluent after hitting eight fours in his 48, prodded forward tentatively to a delivery that spun and bounced more than he expected.
Giles and off spinner Gareth Batty found some assistance from the pitch but it was all rounder Andrew Flintoff who asked the most questions, troubling both openers with his extra pace and bounce as he bowled around the wicket.
Atapattu, who played some classical high-elbowed strokes, could have been dismissed twice in his first two overs as he nicked through the slips and pushed back a half-chance to the bowler.
But Flintoff was rewarded in the afternoon, returning after the rain to dismiss Atapattu, who gloved a leg side catch to Chris Read behind the stumps.
Sangakkara and Mahela Jaywardene (17) then added 44 for the third wicket before Giles was reintroduced.
He struck with his second ball as Jayawardene, perhaps unluckily, was adjudged to have been caught at silly point.
Skipper Hashan Tillakaratne followed soon after, shaping to cut and Read hanging on to the thick edge.
England had suffered a setback in the morning when former captain Nasser Hussain was forced to withdraw from the side with a virus. He was replaced by Paul Collingwood.
Sri Lanka left out wicketkeeper Romesh Kaluwitharana to make room for three spinners. Dinusha Fernando made his test debut after being preferred to his namesake Dilhara as Chaminda Vaas's new-ball partner
Scoreboard
Sri Lanka (1stĀ innings):
M. Atapattu not out 28
S. Jayasuriya c Collingwood b Giles 48
K. Sangakkara not out 4.
Extras: (w-1, nb-1, lb-1) 3.
Total: (for 1 wicket, 34.4 overs) 83
Did not bat: M. Jayawardene, H. Tillkaratne, T. Samaraweera, C. Vaas, U. Chandana, K. Dharmasena, M. Muralitharan, Dinusha Fernando
Fall of wickets: 1-76
Bowling: M.Hoggard 8.4-2-18-0, Johnson 10-4-22-0 (1-w), Flintoff 5-3-5-0 , Collingwood 2-0-9-0 (1-nb), Batty 6-1-21-0, Giles 3-0-7-1
England: Michael Vaughan (captain), Marcus Trescothick, Mark Butcher, Graham Thorpe, Andrew Flintoff, Ashley Giles, Gareth Batty, Richard Johnson, Matthew Hoggard, Chris Read, Paul Collingwood