Rahul Dravid and Sachin Tendulkar both scored centuries on day two of the second Test in Dhaka as India reached 459-5 in reply to Bangladesh's first innings of 233.
The tourists' third-wicket pair put on 222 in 51 overs before Dravid was forced to retire hurt on 111 after being hit on the ear guard of his helmet by a Shahadat Hossain bouncer during the evening session.
Dravid was taken to hospital for checks on his jaw and is expected to remain in overnight for observation.
Tendulkar had advanced to 143, his 45th Test hundred, when he chipped a tame catch to midwicket off left-arm spinner Shakib Al Hasan.
The Tigers struck twice more late in the day, skipper Shakib (2-108) removing Murali Vijay (30) and Harbhajan Singh (13) falling to Shafiul Islam in the final over.
India captain Mahendra Singh Dhoni (22no) will resume on the third morning with his side already holding a lead of 226 - and Yuvraj Singh, who was held back to rest a hand injury, still to come.
Earlier, openers Gautam Gambhir and Virender Sehwag raised a century partnership, adding 34 to India's overnight position of 69-0 before the stand was broken.
Sehwag (56) advanced to a 51-ball half-century but was out shortly afterwards with India's score on 103, gloving a short delivery from Shahadat to wicketkeeper Mushfiqur Rahim.
Gambhir, fluent and compact, reached 50 in 60 balls, the 11th consecutive Test in which the left-hander has scored a half-century, equalling the record of former West Indies captain Viv Richards.
But, on 68, he too was undone by a short ball, this time from Shafiul (2-70), to provide Rahim with another catch.
Bangladesh, however, were left to rue two missed chances to get rid of Tendulkar, Raqibul Hassan the guilty party on both occasions, dropping him in the gully on 27 and 53 from the bowling of Rubel Hossain and Shahadat (1-71) respectively.
Dravid also escaped on 28 when Junaid Siddique caught him at slip of a Rubel (0-106) no-ball.
The third-wicket duo flourished in the afternoon, aided by a considerable number of wayward offerings from part-time spinners Mahmudullah (0-63) and Mohammad Ashraful (0-26).
And although Bangladesh did hit back in the final hour, by that stage India were already well in command.
India lead the two-match series 1-0 after winning the series opener in Chittagong by 113 runs.