Joe Root won his eighth consecutive toss and opted to bat, only for England to lose both its openers early. Dilruwan Perera and Malinda Pushpakumara picked one apiece to reduce England to 36/2.
Joe Root and Jonny Bairstow then counterattacked, putting 100 runs for the third wicket on either side of Lunch. Root fell on 46 slog-sweeping Lakshan Sandakan, who ended up with four wickets on the day.
Ben Stokes bought up his 16th half-century in a 99-run stand for the fourth wicket with Bairstow.
Bairstow, batting for the first time at the No. 3 spot in Tests, bought up his sixth Test hundred.
Lakshan Sandakan picked three wickets (Ben Stokes, Jonny Bairstow and Jos Buttler) soon after Tea to chip away at England, who ended the day at 312/7.