James Anderson started the day by became the third bowler and first pacer to complete 700 Test wickets when he dismissed Kuldeep Yadav.
Shoaib Bashir’s fifer helped England to restrict India to 477 in the first innings, leaving the visitors 259 runs behind.
Ravichandran Ashwin, playing on his 100th Test, took five wickets as he ripped through England’s top-order.
Indian vice-captain Jasprit Bumrah took two crucial wickets and led India in the second innings after skipper Rohit Sharma was ruled out due to a stiff back.
Kuldeep Yadav picked up the final wicket of Joe Root as India won the match by an innings and 64 runs.