Sri Lankan spinners combined to bowl out England for 285 after the tourists' new number three Ben Stokes and skipper Joe Root fell cheaply in the second Test on Wednesday.
Dilruwan Perera took four wickets and Malinda Pushpakumara three wickets to see off England in the final session of day one after they elected to bat first in Kandy.
But Jos Buttler's 63 and a crucial 64 from Sam Curran at the end gave the English total a lift after they were reduced to 89-4 on a turning pitch.
The left-right batting pair of Curran and Adil Rashid, who scored 31, put together a 45-run stand for the eighth wicket after the hosts had slipped to 171-7.
After Rashid, Curran combined with Jack Leach and then James Anderson to lift England's score to a decent 285.
Stokes, who batted at number five in his team's opening win last week, had been sent up the order following Moeen Ali's twin failures at number three in Galle.
Off-spinner Perera successfully reviewed an lbw decision against Stokes after the on-field umpire had turned down an appeal. He was out for 19.
Lakmal, who is leading the side in place of injured Dinesh Chandimal, had Keaton Jennings caught behind for one in the fifth over.
Root, who scored 35 and three in the first Test, was bowled by Pushpakumara in the 18th over for 14 and Rory Burns (43) soon followed as England slumped to 89 for four before lunch.
Buttler then counter-attacked, hitting five boundaries with a mixture of sweeps and reverse sweeps as he built crucial partnerships including a 45-run stand with Moeen.
He was finally undone while attempting one reverse sweep too many, as he was caught at backward point and walked back to the pavilion to a standing ovation.