Sam Robson hit his maiden Test century before England lost three wickets for three runs to finish the second day on 320-6 and a 63-run lead over Sri Lanka in the second Test.
While Robson answered his critics with 127 after making a combined 20 on his debut in the first Test, Alastair Cook did not. He went for 17 to Dhammika Prasad, adding three to his overnight score at Headingley.
Gary Ballance and Ian Bell, on his 100th test appearance, made 74 and 64 respectively.
Ballance and Joe Root (13) fell to Angelo Mathews, Bell flicked Shaminda Eranga's delivery to Dinesh Chandimal down legside, and Moeen Ali went for Eranga's second wicket on two.
Matt Prior (three) and Chris Jordan (four) were at the crease at stumps.
The first Test between the two countries ended in a draw at Lord's.