James Anderson recorded his best Test figures at Headingley as Sri Lanka were made to follow-on on the second day of the first Test against England on Friday.
Sri Lanka were dismissed for just 91 in reply to England's first innings 298, a deficit of 207 runs.
Anderson, England's all-time leading Test wicket-taker, took five for 16 in 11.4 overs including a spell of four for one in 29 balls.
That surpassed his previous Headingley best of three for 91, also against Sri Lanka, two years ago.
New-ball partner Stuart Broad had figures of four for 21 in an innings that was completed inside 37 overs.
Only Sri Lanka captain Angelo Mathews (34) and Lahiru Thirimanne (22) offered much resistance with the bat.
Wicket-keeper Jonathan Bairstow held five catches after scoring 140 -- his first Test century in England -- on his Yorkshire home ground earlier Friday.
Sri Lanka were one without loss off two balls in their second innings when bad light forced an early close despite the floodlights being switched on.
That single had come via a leg-bye, with Dimuth Karunaratne sweating on a pair overnight, and Kaushal Silva both nought not out.
Broad, now the world's top-ranked Test bowler, made the initial breakthrough as forecasts that a Sri Lanka top order missing retired batting greats Kumar Sangakkara and Mahela Jayawardene would struggle in typically overcast English conditions proved all too accurate.
Coming from round the wicket, Broad had Karunaratne out for a duck as the left-hander edged an excellent delivery that nipped away to Bairstow.
Silva was then caught behind off a sharply rising ball from Anderson for 11.
Kusal Mendis, like Karunaratne, fell for a duck when he fell to the Broad/Bairstow combination. Sri Lanka were then 12 for three.
Mathews -- whose Test-best 160 laid the platform for Sri Lanka's win at Headingley two years ago that clinched their first series win in England -- defiantly cut Broad through point for four.
But the all-rounder eventually fell lbw to Anderson, roared on by the crowd despite playing for Lancashire, Yorkshire's traditional rivals.
Replays suggested the ball may have pitched outside of stump but, after consulting Thirimanne, Mathews opted against a review.
His exit saw Anderson move past India great Kapil Dev's tally of 434 Test wickers and into sixth place in the all-time list.
Test debutant Dusan Shanaka then fell for a golden duck, caught behind by Bairstow, to leave Anderson on a hat-trick.
Rangana Herath blocked the next ball but he too fell to Anderson, with Ben Stokes holding a head-high catch at fourth slip.
Broad then dismissed Dushmatha Chameera and Thirimanne with the aid of diving low catches by the 6ft 7in Steven Finn at mid-off and mid-on to leave Sri Lanka 91 for nine.
And that became 91 all out when Eranga was caught down the legside by Bairstow off Anderson.
England, who lost the toss, resumed Friday on 171 for five. Alex Hales was 71 not out, with Bairstow unbeaten on 54.
Bairstow, however should have been out for 70 -- half his eventual score -- when Nuwan Pradeep dropped a caught and bowled chance off a checked drive.
Hales and Bairstow took their sixth-wicket stand to 141 but there was no maiden Test century for Hales.
The opener was out for 86 when, losing patience after nearly five-and-a-half hours of concentration, he holed out off left-arm spinner Herath.
An overthrown three saw Bairstow to his second Test century and first in England following the Yorkshireman's 150 not out against South Africa at Cape Town in January.
His 183-ball innings, including 13 fours and a six, ended when he holed out off Chameera to Pradeep at mid-on.