Victory would give England an unbeatable 2-0 lead in the three-match series.
England captain and opener Alastair Cook needs just five more runs to become the first English batsman to score 10,000 runs in Tests.
Sri Lanka, following on, made 475 in their second innings after being skittled out for 101 first time around.
Dinesh Chandimal top-scored with 126, while James Anderson, England's all-time leading Test wicket-taker, led the attack with five for 58.