India stormed back in style, after being surprised in the first game in Chennai, to thrash England in the next three Tests and score an emphatic 3-1 triumph.
Spin twins Ravichandran Ashwin (32 wickets) and Axar Patel (27 wickets) did the bulk of the damage with the ball, while Rohit Sharma's amazing 161 in the second Test proved the catalyst in India's magnificent turnaround.
The most impactful performance of the series though was from young Rishabh Pant who continued his smashing form with the bat. And, not to forget, key contributions with the bat from all-rounder Washington Sundar lower down the order.
Harish Kotian looks at how India's cricketers fared in the England series:
Rohit Sharma (9/10)
Rohit was majorly responsible for India's superb turnaround in the series after defeat in the first Test in Chennai.
He failed in both innings of the opening game, but stormed back with a splendid 161 in the second Test -- the only century by an Indian top order batsman in the series.
His century laid the foundation for India's mammoth 317-run win in Chennai before he played another match-defining innings of 66 on a rank turner in the third Test, played with the pink ball.
With a tally of 345 runs, at an average of 57, Rohit finished as India's top run-getter and the second best in the series after Joe Root (368 runs).
Shubman Gill (3/10)
Shubman impressed in Australia, but failed to live up to expectations against England at home.
He had nothing to show after his 50 in the second innings of the first Test and was lucky to retain his spot for the last game, even though India had Mayank Agarwal, who averages a Bradmanesque 99 in home Tests with 597 runs in five Tests, in its ranks.
The young opener will need to work on his defensive technique, especially against the pace bowlers early on.
Shubman managed just 119 runs in four Tests, at an average of 19.
Cheteshwar Pujara (4/10)
Pujara also struggled to make an impact.
He started off the series on the right note -- a solid 73 in the first innings of the first Test -- but failed to sustain the momentum.
Usually good against spinners, Pujara was sorted out by England left-arm spinner Jack Leach, who dismissed him four times out of his six innings in the series.
Pujara must be very disappointed to have tallied only 133 runs in the series, at an average of 22.
Virat Kohli (7/10)
It was a forgettable series for Kohli, the batsman. However, his leadership skills came to the fore as he rallied the team after the big defeat in the opening Test.
It was only the second time in his career that he was dismissed without scoring twice in a series.
He started off well, with half-centuries in the first two games, but failed in the last two Tests in Ahmedabad, managing just 27 runs in the last three innings.
Kohli, who has gone without a century for more than a year, finished with 172 runs, at an average of 28.
Ajinkya Rahane (5/10)
Rahane is one rare batsman whose 'away' average is better than at 'home'. The trend continued in this series.
He did play an important role in the second Test, scoring 67, and was involved in a 162-run stand for the fourth wicket with Rohit.
Apart from that he fell for 10 or under four times for a poor return of just 112 runs, at an average of 18.
His catching at slip gave India the advantage at several times in the series.
Rishabh Pant (10/10)
There was no stopping the 23 year old.
While his batting has always been spoken of very highly, his keeping skills had come under the scanner. But he excelled in both departments against England, coming up with some sensational catches and stumpings off the spinners on rank turners.
Rishabh played some magical knocks with the bat to help India triumph in Australia. At home he took it to a level higher against England.
He blasted 91 from 88 balls in the first Test, taking the England bowlers to the cleaners and played another vital innings of 58 not out in the second game.
His swashbuckling century (101) in the fourth Test was simply outstanding, as he tore into the England bowling attack and took the match away from their grasp with a counter-attacking approach.
Rishabh's consistent showing with the bat has added a new dimension to the Indian team and allowed the luxury of going in with an extra bowler.
He aggregated 270 runs in the series at a strike rate of 84, while taking eight catches and five stumpings.
Ravichandran Ashwin (10/10)
The seasoned off-spinner left England's batsmen gasping by his wizardry.
He was simply unplayable as he picked plenty of wickets in every match to fashion India's comeback in the series.
With the bat too, he was not far behind, registering a century in the second Test -- a feat that eluded Kohli, Pujara and Rahane.
He took three five-wicket hauls to finish with a rich tally of 32 wickets -- the most by any bowler in the series, at an average of 14.
During the course of the series, Ashwin became the fourth Indian bowler to achieve the landmark of 400 wickets in Test cricket.
Axar Patel (9/10)
Axar left everyone stunned with his impressive showing with the ball in his first Test series.
Called in to replace the injured Ravindra Jadeja, the left-arm spinner proved he belongs to an elite list with a consistent showing with the ball.
Axar's introduction forced England to alter their plans. He is a difficult spinner to sweep and his dismissal of Joe Root in the second Test, after he top edged the sweep, sowed the seeds of doubts in the England batsman's mind.
Once the sweep was taken out of the equation, the visitors didn't seem to have any other plans to counter the Indian spinners and that proved to be a pivotal moment in the series.
It was certainly a dream Test debut as the 27 year old finished with 27 wickets in three games, at an astonishing average of 10.59, including four five-wicket hauls.
He equalled Dilip Doshi's record for the most wickets by an Indian bowler in a debut series.
Washington Sundar (8/10)
Washington did not have much of a role to play with the ball as Ashwin and Axar ran through the England batting line-up time and again.
But he made some important contributions with the bat lower down the order at crucial stages in the series to showcase his importance in the Test team.
Washington was unfortunate to miss out on a century in the fourth Test, left stranded on 96 after the last three wickets fell in quick succession.
He also played a handy innings of 85 not out in the first Test before he was left out of the next game in favour of Kuldeep Yadav only to be promptly drafted into the team for the third Test.
After his fine showing with the bat, it will be difficult for India to justify leaving the 21 year old out of the team henceforth.
Ishant Sharma (5/10)
The pacers were more of a supporting act in the series. Ishant bowled his heart out in the series opener on a flat wicket as England amassed a huge 578 but, thereafter, his workload was reduced considerably as the next three games were played on pitches offering a lot of assistance to the spinners.
Ishant, who completed 100 Tests, finished with six wickets in the series, at an average of 26, having bowled just 59 overs in the four Tests.
Mohammed Siraj (5/10)
He came up with another fine spell in the fourth Test when he produced two lethal inswingers to dismiss the in-form Joe Root and Jonny Bairstow in the first innings.
Jasprit Bumrah (5/10)
Jasprit played two Tests against England. He was rested for the second game before he pulled out of the last game for personal reasons.
He was made to work hard for his 3/84 in 36 overs on a flat wicket in the first match in Chennai as England romped home to a huge first innings score.
He then took one wicket in the second innings --- the crucial one of Joe Root -- but got to bowl just six overs in the pink ball Test as England collapsed cheaply to the spinners in both innings.
Shahbaz Nadeem (2/10)
Shahbaz earned an unlikely Test recall after more than 18 months when he was picked for the first Test from the reserves ahead of Kuldeep Yadav.
However, the Jharkhand left-arm spinner failed to make it count. He took two wickets in both innings, but failed to keep things in check as he went for nearly four runs per over, giving away 233 runs in 59 overs.
He will rue the fact that he got only one opportunity, that too on a flat wicket, while being kept out of the next three games which were played on turning pitches.
Kuldeep Yadav (3/10)
Kuldeep has fallen down the pecking order as far as the Indian Test team is concerned.
Two years ago Coach Ravi Shastri hailed him as India's No 1 overseas spinner, ahead of Ashwin and Jadeja.
But since his five-wicket haul against Australia in Sydney in 2019, he had to wait another two years to get another game.
Kuldeep bowled just 12.2 overs in the second Test in Chennai, picking up two wickets in the second innings, while Ashwin and Axar ran through the England batting line-up.
Sundar can be a very good No 6 for India: Shastri
Another feather in Ashwin's cap!
Rohit's 161 defining moment in India's comeback: Kohli
Unstoppable Axar equals Doshi's record
Shastri lauds Rishabh Pant's 'game-changing' hundred