Forced to follow on 397 behind after being bowled out for only 101, the tourists battled hard to reach 309-5 - trailing by 88 at Chester-le-Street.
Captain Angelo Mathews made a counter-attacking 80, Kaushal Silva 60 and Dinesh Chandimal an unbeaten 54.
James Anderson ended the day with two wickets and Chris Woakes, Steven Finn and Moeen Ali one apiece.
As well as Sri Lanka batted on an admittedly placid surface, a second successive innings victory for England - and a series triumph - remains the most likely outcome.
There is no rain forecast on Monday, the second new ball is only four overs old and Rangana Herath - boasting a Test average of 13 - is the next batsman in at number eight.