Kumar Sangakkara scored his first Test hundred at Lord's as Sri Lanka looked to avoid the follow-on against England.
Sri Lanka were 309 for four at tea on the third day, still 266 runs behind after Joe Root's maiden Test double century had taken England to 575 for nine declared in the first of this two-match series.
But now they needed just 67 more runs to make England bat again.
Left-hander Sangakkara, 36, was 121 not out but there was no third Lord's hundred on Saturday for the 37-year-old Mahela Jayawardene in what was set to be a fourth and final Test at 'the home of cricket' for both Sri Lanka greats.
Sri Lanka resumed Saturday on 140 for one, having fought back well in the face of England's imposing total.
Kaushal Silva was 62 not out and Sangakkara unbeaten on 32.
Play commenced in gloomy overcast conditions that led to the floodlights being switched on.
But it was pace and bounce, rather than swing, that did for gutsy opener Silva.
He'd added just one to his score when, trying to sway out of the way of a James Anderson bouncer, he didn't lower his bat, with the ball grazing the face on its way through to wicketkeeper Matt Prior.
Silva and Sangakkara put on 97 for the second wicket.
England captain Alastair Cook using all five members of his attack, including debutants Chris Jordan and Moeen Ali, in the morning session.
Sri Lanka, though, were 212 for two at lunch with Sangakkara 73 not out and Jayawardene unbeaten on 29.
Sangakkara then went past his previous Lord's Test-best of 78 and and the 36-year-old entered the 90 went by lofting Ali down the ground for four.
Liam Plunkett, playing his first Test in seven years, tried bowling short from around the wicket to a packed legside field but to no avail.
And when the fast bowler reverted to over-the-wicket, Sangakkara drove him down the ground for an all-run four to move on to 97.
By now, Cook had brought on part-time off-spinner Root in a bid to break the stand.
Sangakkara, though, cover-drove Root for his 10th boundary to complete a 182-ball century -- his 36th in 123 Tests -- and was promptly embraced by a leaping Jayawardene who seemed as pleased his clearly-elated colleague at the achievement.
It was a century warmly applauded by a capacity crowd, with Sangakkara a popular figure at Lord's both on and off the field after delivering a well-received MCC 'Sprit of Cricket' Lecture in 2011.
But with the second over of the new ball, England at last separated the veterans following a third-wicket partnership of 126 when Stuart Broad had Jayawardene plumb lbw for 55.
Jayawardene reviewed New Zealand umpire Billy Bowden's decision but it was a poor challenge with replays indicating the ball would have hit middle stump two-thirds of the way up.
Sri Lanka were now 277 for three, still nearly 100 runs shy of avoiding the follow-on.
And with Lahiru Thirimanne soon out after he chipped Anderson to Sam Robson -- the third of England's three newcomers -- at square leg, the worry for Sri Lanka was finding someone to stay in with Sangakkara.
But despite Anderson's miserly haul on Saturday of two wickets for 22 runs in 11 overs, Sri Lanka captain Angelo Mathews was 14 not out at tea. – AFP