James Anderson made early inroads into Sri Lanka’s top order, but England have largely toiled in the blistering heat of Galle as the home side reached 3-155 at tea on the opening day of the second and final Test.
Anderson (3-14) rocked Sri Lanka with the new ball to leave them teetering at 2-7, and also claimed the key wicket of in-form opener Lahiru Thirimanne for 43.
Angelo Mathews was set to resume in the final session after a classy unbeaten 63, along with captain Dinesh Chandimal, who had 42. The pair had put on 79 so far for the fourth wicket.
Sri Lanka won the toss and elected to bat, but were soon in trouble as Anderson produced a double strike, having replaced fellow veteran Stuart Broad in a rotation of England’s seam attack, the only change from their seven-wicket win in the first Test.
Fiery home opener Kusal Perera had a wild swing at a delivery outside off stump and was caught by Joe Root high above his head at first slip for 6.
Oshada Fernando (0), who came into the side for Kusal Mendis, lasted just four balls before edging a rising Anderson delivery that he could have left onto the wicket.
Mendis was dropped after scoring four ducks in a row before his second innings 15 in the last test, and the number three position remains a problem for Sri Lanka.
Thirimanne had looked assured in the opening session but fell to the second ball after lunch, sparring at a wide delivery from Anderson that he edged to wicketkeeper Jos Buttler.
Sri Lanka handed a debut to spinning all-rounder Ramesh Mendis and also recalled leading seamer Suranga Lakmal, who missed their last three tests due to injury.
England are seeking to notch a fifth away Test victory in a row for the first time since 1913. They travel to India for four matches immediately after this series.