Chennai: Centuries from opener Shubman Gill and Rishabh Pant helped India close in on victory in the first Test despite a spirited start to Bangladesh's chase for their target of 515 in Chennai on Saturday.
Bangladesh started briskly but lost wickets to reach 158-4 when bad light stopped play on day three, with the visitors still needing 357 for a win.
India declared their second innings on 287-4.
Bangladesh skipper Najmul Hossain Shanto was unbeaten on 51 at the close of play, with Shakib Al Hasan on five.
Spinner Ravichandran Ashwin took three wickets to add to his 113 with the bat in his team's first innings total of 376.
Bangladesh openers Zakir Hasan and Shadman Islam began briskly with 62 runs for the first wicket before Jasprit Bumrah ended the defiant stand to send back Zakir for 33.
Ashwin dismissed Shadman for 35.
The veteran off-spinner kept up the charge when he bowled left-handed Mominul Haque for 13 with a flighted delivery that also turned. He then had Mushfiqur Rahim caught out, also for 13.
Najmul stood firm to reach his fifty and, with fellow left-hander Shakib for company, the two saw off the day in fading light.
Pant, who made 109, and Gill, unbeaten on 119, earlier put on 167 runs for the fourth wicket to ram home India's advantage in the second session after they bundled out Bangladesh for 149 on day two.
Left-handed wicketkeeper-batsman Pant smashed the bowlers to all parts of the ground before a double off Shakib gave him his sixth Test century.
The 26-year-old, who survived a near-fatal car crash in December 2022, took off his helmet and raised his bat to acknowledge a standing ovation from the weekend crowd.
He finally fell caught and bowled by spinner Mehidy Hasan Miraz after his 128-ball knock that included 13 fours and four sixes.
Gill kept up the charge and raised his fifth Test ton before skipper Rohit Sharma called him and KL Rahul, on 22, back.
Gill and Pant, who survived a dropped catch by Najmul off Shakib on 72, started cautiously on India's overnight score of 81-3 after early morning rain.
Pant let loose with two boundaries before Gill smashed Mehidy for two sixes in an over to raise his fifty.
The batting duo handled the spinners with ease and jumped out of the crease to hit boundaries.
India are looking to extend their lead at the top of the World Test Championship rankings as they begin a fresh Test season of 10 matches.
Bangladesh have never beaten India in a Test.