Captain Virat Kohli maintained his red-hot form as he and Murali Vijay struck fine centuries to help the hosts overtake England on day three of the fourth test at the Wankhede Stadium on Saturday.
The hosts, leading 2-0 in the five-match series, reached 451 for seven at the close, 51 runs ahead of the touring side.
Captain Kohli was unbeaten on 147 at stumps with Jayant Yadav on 30 not out.
The 28-year-old Kohli brought up his 15th test hundred and second of the series and celebrated with a leap in the air, bringing the 22,000 crowd at the stadium overlooking the Arabian Sea to their feet.
Kohli batted majestically, rarely looked in trouble, and hit 17 fours with sublime stroke-making.
He shared crucial stands with the lower-order batsmen - 57 with Ravindra Jadeja for the seventh wicket and an unbroken 87 with Yadav.
Vijay and Kohli, who also passed 1,000 test runs in 2016 and 4,000 in his career, added 116 for the third wicket before the former was out for 136, hitting a full toss from Adil Rashid straight back to the leg-spinner.
England successfully reviewed the umpire's not out decision to dismiss Karun Nair lbw for 13 off Moeen Ali before part-time off-spinner Joe Root picked up the wickets of Parthiv Patel and Ravichandran Ashwin in four balls.
India, who were comfortably placed on 262-2, were reduced to 307-6 before Kohli and Jadeja propped them up. Jadeja was out to Rashid for 25.
The hosts could have been in more trouble if Rashid had held on to a return catch from Kohli, then on 68. Root also dropped Yadav on eight off James Anderson, compounding England's problems.
Yadav was reprieved again on 28 when replays showed he had edged Moeen to wicketkeeper Jonny Bairstow down the leg side but England did not have any reviews left to challenge the umpire's not out decision.
Resuming on 146 for one, the hosts suffered an early jolt when Cheteshwar Pujara (47) was bowled by the second ball of the morning shouldering arms to paceman Jake Ball.
However, it proved to be the only success for the English bowlers in the morning as Vijay and Kohli flayed the attack.
Vijay reached his second century of the series with a single against off-spinner Moeen and hit 10 fours and three sixes in his knock.
He was given out lbw to Rashid on 116 but managed to overturn the decision on review as replays suggested he got an inside edge before the ball struck his pad.