Mumbai: Skipper Virat Kohli slammed an unbeaten 147 after opener Murali Vijay struck a century to propel India to 451-7 on day three of the fourth Test against England Saturday.
Cheteshwar Pujara (47) fell to the second ball of the day but Vijay's 136 dented England's early hopes.
Two wickets in four balls from Joe Root gave England the upper hand before Kohli's classy century - his second of the series - put India on top.
Kohli, who was dropped by Rashid on 68, unbeaten 147 helped India amass a 51-run lead as they finished on 451-7.
Kohli's composure at the crease and the way he paced his innings blunted England after they took three wickets for 28 runs, and gave India a vital lead on a turning pitch.
Adil Rashid and Moeen Ali, who both struggled on the first day, bowled a much more consistent line but the sharp spin that they found will surely play on the mind of England's batsmen.
Vijay smashed 10 fours and three sixes on his way to a stunning 136 while captain Kohli kept his cool as four of his team-mates lost their wickets in the post-lunch session.
Spinner Adil Rashid sent Vijay packing shortly after lunch when he caught and bowled the right-handed batsman.
Karun Nair only made 13 runs before being given out lbw off Moeen Ali by the TV umpire after a long study of the television replays using the Decision Review System.
Joe Root then too two quick wickets to reduce the top-ranked hosts to 307-6. Parthiv Patel was caught behind by Jonny Bairstow for 15 while Ravichandran Ashwin was caught for a duck by Keaton Jennings.
Brief scores
England - 400 (Jennings 112, Buttler 76, Moeen 50, Ashwin 6-112, Jadeja 4-109)
India - 451 for 7 (Kohli 147*, Vijay 136)
Status - India lead by 51 runs