James Anderson and Stuart Broad shared eight wickets before Chris Woakes completed a brilliant return to international duty with the final blow as England thrashed India by an innings and 159 runs in the second Test at Lord's on Sunday.
India, the world's top-ranked Test side, failed to cope with overcast and swing-friendly conditions in both their innings, with a rain-marred match effectively over in under two days' standard playing time.
India were dismissed for 130 on Sunday's fourth day, having been skittled out for just 107 first-time around.
Anderson, England's all-time leading Test wicket-taker, finished with innings figures of four for for 23 as he became the first bowler to take 100 Test wickets at Lord's.
Allied to a first-innings return of five for 20, that meant Anderson had a match haul of nine for 43.
"I am not very proud of the way we played," India captain Virat Kohli told Sky Sports. "England deserved to win; we deserved to lose."
Victory left England 2-0 up in this five-match series after their 31-run win in the first Test at Edgbaston last week.
"The bowling unit were exceptional throughout the whole game," said Joe Root, the England captain.
"The conditions were in our favour but you still have to ask questions and we did."
Only once have a side come from 2-0 down to win a five-match Test series, when a Don Bradman inspired Australia recovered to beat England in 1936/37.
Woakes's 137 not out, his maiden Test century, was the cornerstone of England's 396 for seven declared.
He also shared an England record sixth-wicket stand against India of 189 with Jonny Bairstow (93).
That partnership helped England recover from a top-order collapse that saw them slump to 89 for four at lunch on the third day.
Man-of-the-match Woakes also had overall figures of four for 43.
"To get to a position where we could declare after Jonny and Woakesy’s magnificent partnership, I am chuffed to bits for Woakesy to get a hundred," said Root.
His century saw Woakes become just the fourth cricketer after England's Gubby Allen and Ian Botham and Australia's Keith Miller to have scored a century and taken 10 or more wickets in a Test at Lord's, with the Warwickshire star returning match figures of 11 for 102 at the 'home of cricket' against Pakistan two years ago.
"To get a hundred and be on the honours board is something that will stay with me forever," said Woakes.
Sunday's humid and cloudy conditions were ideal for 36-year-old Lancashire swing bowler Anderson, who has now taken 553 Test wickets.
That left Anderson, fifth in the all-time Test standings, just 10 wickets behind Glenn McGrath's tally of 563 -- the most by any paceman at this level, with the top three places all belonging to spinners.
Having bowled opener Murali Vijay for nought in the first innings, it was not long before Anderson had him caught behind for a second duck -- his 100th wicket in 23 Tests at Lord's.
Vijay's fellow opener KL Rahul fell for 10 when lbw to Anderson.
After lunch, Ajinkya Rahane (13) was well caught by Keaton Jennings at third slip off Broad.
Rahane's exit brought in Kohli, the world's top-ranked batsman coming in at number five rather than his usual number four position because of a stiff back.
But Kohli, who hopes to be fit for the third Test in Nottingham starting on Saturday, could only watch as Broad's superb late inswinger knocked over off stump to bowl Cheteshwar Pujara for 17.
Kohli, needing prolonged on-field treatment, fell for 17 when caught by debutant Ollie Pope at short-leg off Broad.
And the next ball saw Broad have Dinesh Karthik plumb lbw.
Ravichandran Ashwin (33 not out) survived the hat-trick, Broad spearing the ball legside for four byes, before Woakes ended the match when Ishant Sharma was caught by Pope at leg-slip.