Kumar Sangakkara's first century at Lord's led Sri Lanka to 415-7 at stumps and within 160 of England's first innings after three days of the first Test on Saturday.
Sangakkara cruised to his 36th test century, and helped Sri Lanka sail past the follow-on mark after England declared at 575-9 on Friday.
England's total didn't look so imposing on Saturday as all of Sri Lanka's top order delivered.
Resuming from 140-1 overnight, Sri Lanka opener Kaushal Silva was first to depart in the morning after a patient 63, nicking a James Anderson bouncer.
Mahela Jayawardene joined Sangakkara, and the stalwarts led their side safely to lunch and beyond.
Sangakkara raised his century off 182 balls with a four through the covers off Joe Root. Sangakkara raised his arms and Jayawardene jumped on his back.
"It feels very special to get on the (Lord's) honours board," Sangakarra said. "He (Root) tossed it wide . I committed to the shot 100 percent, and usually when you commit to it like that, it finds the gap."
He and Jayawardene added 126 for the third wicket until Jayawardene was dismissed for 55 by Stuart Broad, after a review.
Lahiru Thirimanne scored only 2 before he became Anderson's second wicket, then captain Angelo Mathews joined Sangakkara and they immediately fell into synch.
They put up 96 together when Sangakkara tried to cut Moeen Ali only to top edge to wicketkeeper Matt Prior at 385-5. Sangakkara's 147 came from 258 deliveries, and included 16 boundaries. The Lord's crowd gave him rapturous applause.
Prasanna Jayawardene made 6 before falling to Liam Plunkett, with Ian Bell taking a good reaction catch at leg slip, and Chris Jordan took his second England wicket when Nuwan Kulasekara edged behind on 4.
Mathews finished the day unbeaten with a defiant 79, with Rangana Herath yet to get off the mark.
England's bowlers looked like they were going to make an impact with the new ball taken in the 81st over, but generally struggled as Sri Lanka's did on the flat pitch.
"England will try to ... put the pressure back on us," Sangakkara said. "Hopefully, the tail can add 60 or 70 runs."