Joe Root set an England record of 34 Test centuries as Sri Lanka were left with a mammoth chase to win the second Test at Lord's on Saturday.
Root's 103, the star batsman's second hundred of the match after he made 143 in the first innings, took England to a second-innings total of 251 all out on the third day.
That left Sri Lanka needing 483 to level this three-Test series at 1-1 following England's five-wicket win at Old Trafford last week.
Root was last man out after edging ahead of retired England opener Alastair Cook's mark of 33 Test centuries.
And having made the quickest century of his 145-Test career, off just 111 balls, the 33-year-old Root then held two catches at first slip before bad light ended play for the day.
Sri Lanka were 53-2 at stumps, needing 430 more runs in an unlikely quest to end a run of six successive Test defeats by England.
His seventh Test hundred at Lord's gave Root sole possession of the record for the most Test centuries at the 'Home of Cricket' he had shared with his fellow former England captains Graham Gooch and Michael Vaughan.
It was also the first time Root had made hundreds in both innings of a Test, the Yorkshireman joining the West Indies' George Headley, Gooch and Vaughan as the only batsmen to have achieved that feat at Lord's.
"That was good fun," Root told the BBC after the close. "It was obviously a nice situation when you are far ahead in the game. But you want to drive it forward and get it into as strong a position as possible."
He added: "It doesn't mean you can't score runs if everything isn't perfect and this is something I have learned. There are other ways you can be effective, you can rotate the strike, get a few boundaries away and it does get easier."
Root was embraced by his father, Matt, as he returned to the pavilion after the finish of his innings.
"Very proud and nice to share a moment with my dad walking off the field," he said.
England resumed on 25-1, already 256 runs ahead, after dismissing Sri Lanka for 196 in reply to their first-innings 427.
Pope falls cheaply again
Ollie Pope, two not out overnight, ended a run of three single-figure scores since succeeding the injured Ben Stokes as England captain at the start of this series.
But Pope, who prior to this match had spoken about the difficulties of balancing the responsibility of captaincy with his role as a No 3 batsman, gave his wicket away on 17.
Asitha Fernando dropped short and Pope backed away, only for his square slash to fly straight to Prabath Jayasuriya at deep point.
Harry Brook was dropped on nine when Nishan Madushka dropped a routine catch following a top-edged slog sweep off left-arm spinner Jayasuriya.
Jayasuriya did dismiss Brook for 37, with Madushka making no mistake at deep midwicket, and had Jamie Smith lbw for 26 after the wicketkeeper missed a sweep.
The serene Root, however, twice swept and then reverse-swept Jayasuriya for three fours in an over.
After Gus Atkinson, fresh from his maiden first-class century of 118 in the first innings, and Matthew Potts both fell in quick succession, Root -- then 88 not out -- risked running out of partners before he reached three figures.
But Olly Stone held firm, with an elated Root going to his hundred when he cut Lahiru Kumara for a 10th four before he holed out off the paceman.
That left Sri Lanka needing to make history of their own, with the highest fourth-innings total to win a match in 147 years of Test history the West Indies' 418-7 against Australia at St John's in 2002/03. The corresponding record at Lord's is the West Indies' 344-1 against England in 1984.
Although the floodlights were on, Pope deployed frontline spinner Shoaib Bashir and Root's part-time off-breaks in a bid to stop the match being halted for bad light.
But the umpires did let England's quicks bowl as Atkinson had Madushka (13) edging to Root before the injury-plagued Stone, in his first Test for three years, removed Pathum Nissanka (14) in similar fashion.
Sri Lanka were set a mammoth target of 483 to win the second Test at Lord's on Saturday after dismissing England for 251 in their second innings.
Joe Root was the hosts'' last man out for 103 on the third day. The star batsman set a new England record of 34 Test centuries after making 143 in a first-innings total of 427.
No side have made more to win in the fourth innings of any Test than the West Indies' 418-7 against Australia at St John's in 2002/03, with the corresponding Lord's record the West Indies' 344-1 (needing 342) against England in 1984.
England are bidding for an unassailable 2-0 lead in this three-match series after their five-wicket win in the first Test against Sri Lanka a Old Trafford last week.
Earlier, Joe Root set an England record of 34 Test centuries when, for the second time in the match, he reached three figures in the second Test against Sri Lanka at Lord's.
Root, who made 143 in the first innings to move level with the previous England record of 33 hundreds held by the retired Alastair Cook, went to a century on Saturday's third day when he cut Lahiru Kumara for the 10th four off 111 balls faced.
It meant he surpassed his fellow former England captain's mark in what was Root's 145th Test compared to Cook's career tally of 161 matches.
Root's seventh Test hundred at Lord's also gave him sole possession of the record for the most Test centuries at the 'Home of Cricket' he had shared with the England duo of Graham Gooch and Michael Vaughan, who both managed six apiece.
In the process, Root became the fourth batsman to have scored hundreds in both innings of a Test at Lord's, joining the West Indies' George Headley (1939), Gooch (1990) and Vaughan (2004).
Gooch's combined tally of 456 runs against India at Lord's in 1990, comprising innings of 333 and 123, remains a record for the most runs scored by a single batsman in any Test.
Root's latest century also moved him into joint-sixth place in an all-time list of Test century-makers headed by India great Sachin Tendulkar, who scored 51 hundreds in 200 Tests from 1989-2013.
The 33-year-old Rootis the only batsman in this group who is still an active Test cricketer.
Most Test hundreds (number of hundreds, matches, player, team (s), span):
51 200 Sachin Tendulkar IND 1989-2013
45 166 Jacques Kallis RSA 1995-2013
41 168 Ricky Ponting AUS 1995-2012
38 134 Kumar Sangakkara SRI 2000-2015
36 164 Rahul Dravid IND/ICC 1996-2012
34 118 Younis Khan PAK 2000-2017
34 125 Sunil Gavaskar IND 1971-1987
34 131 Brian Lara WIS/ICC 1990-2006
34 149 Mahela Jayawardene SRI 1997-2014
34 145 Joe Root ENG 2012 -
33 161 Alastair Cook ENG 2006-2018
Hundreds in both innings of a Test at Lord's (scores, player, team, opposition, year):
106 and 107 George Headley WIS v ENG 1939
333 and 123 Graham Gooch ENG v IND 1990
103 and 101 no Michael Vaughan ENG v WIS 2004
143 and 103 Joe Root ENG v SRI 2024