India end the day trailing by 64 runs after getting to 86 for one at the end of the opening day.
They started by losing the toss, but Bangladesh choosing to bat played right into their hands and the hosts cleaned up the Tigers for 150.
Only Mushfiqur Rahim's 43 and captain Mominul Haque's 37 were the notable scores.
India did quite poorly in the field and let go of a couple of catches but it did not exactly come back to bite them.
Meanwhile, Imrul Kayes dropped India opener Mayank Agarwal, who has gone on to remain unbeaten for 37, off pacer Abu Cheteshwar Pujara is the other man at the crease on 43.
India will likely bat through the second day and with Virat Kohli the next man in, things look more than dicey for Bangladesh.
India 79/1 in 23.3 overs: Imrul Kayes drops an easy one at first slip after Mayank Agarwal edges one from Abu Jayed. Agarwal, then on 32, hits a boundary two balls later. India are 83 for one after 24.
India bring up 50 runs for the loss of just one wicket. The hosts currently trail by 100 more runs. Mayank Agarwal is on 16 while Cheteshwar Pujara is on 34.
India Rohit Sharma plays a loose shot chasing a ball outside off and edges behind to Liton Das, who has assumed wicketkeeping duties. Abu Jayed is the bowler who benefits. India are 14 for one.
RG Sharma c †Liton Das b Abu Jayed 6 (14b 1x4 0x6)
Bangladesh fold for 150. A 50-plus-run fourth-wicket stand between Mushfiqur Rahim and Mominul Islam was the best they could get. Mominul made 37 and Mushfiqur, dropped by Kohli early on, made 43.
India did put down a few chances but they were lucky to not be made to pay. They will come in shortly.
Ebadot Hossain is the last Bangladesh wicket to fall in the first innings, bowled by Umesh Yadav for 2.
Ebadat Hossain b Yadav 2 (5b 0x4 0x6)
Shami comes in for the next over and although he doesn't get the hattrick, Taijul Islam is run out in the next over.
Bangladesh 148 for 9.
Taijul run out 1 (7b 0x4 0x6)
Bangladesh crash to 140 for 8 after losing two wickets in the last two balls before the break as Ishant Sharma removes Liton Das immediately after Tea. Liton edges one to Virat Kohli and it's well caught.
Liton Das c Kohli b I Sharma 21 (31b 4x4 0x6)
We go to Tea with Shami on a hattrick and Bangladesh 140 for seven.
Mehedi goes immediately, trapped in front by Shami, who is now on a roll and on a hattrick. Bangladesh did not review, but had they done so, Mehedi would have been ruled not out.
Mehidy Hasan Miraz lbw b Mohammed Shami 0 (1b 0x4 0x6)
Mushfiqur Rahim is sent back viciously for a well-fought 105-ball 43 by Mohammad Shami. He swings one in and it rattles into the stumps.
Mushfiqur Rahim b Mohammed Shami 43 (105b 4x4 1x6)
Mahmudullah Riyad plays a terribly misjudged sweep and is bowled around his legs by Ravichandran Ashwin. Mushfiqur is still at the crease but Bangladesh are 115 for 5, with Liton Das next in.
Riyad could only get 10 off 30.
Mahmudullah b Ashwin 10 (30b 1x4 0x6)
Mahmudullah Riyad is dropped in the slips off a delivery by Ravichandran Ashwin. Ajinkya Rahane had an easy one, but lets it go. Dropped catches piling up for India today. Tigers 111 for 4.
Mohammad Shami limps off the field one ball before drinks are taken. Bangladesh are 106 for four, with Mahmudullah Riyad on 7 and Mushfiqur Rahim on 34.
FOW: Bangladesh captain Mominul Haque departed following a solid 37 off 99 balls. Mominul left a delivery from Raavichandran Ashwin only to see it rattle into his stumps.
Bangladesh are 99 for four.
Mominul Haque b Ashwin 37 (80b 6x4 0x6)
Skipper Mominul Haque and Mushfiqur Rahim take Bangladesh through to lunch on a shaky 64 for three after a testing morning session on the first day of the first Test against India in Indore. Mominul is not out on 23 off 60 balls, while Mushfiqur is batting on 16 off 30.
It has been a chancy innings from Mushfiqur, who was dropped on 3 by Virat Kohli off Umesh Yadav.
Bangladesh 48 for three: Bangladesh get a lifeline as Mushfiqur Tahsin is dropped in the slips by Virat Kohli of all people. That would have reduced the visitors to four wickets under 50 runs. Will India be left to rue that error.
Bangladesh 31/3 in 17.6 overs: Mohammad Mithun goes and Bangladesh are 31 for three. Mohammad Shami strikes, getting his man trapped in front for lbw and the finger goes up immediately. No chance of reviewing that one. Mushfiqur comes out.
Mohammad Mithun lbw b Mohammed Shami 12 (36b 1x4 0x6)
India spend one of their reviews immediately after drinks trying to get Mohammad Mithun but the umpire sticks to the original not out decision on an lbw call.
Bangladesh 19/2 in 13 overs: India have completely dominated the first hour of play after both sides got what they wanted out of the toss.
Bangladesh were happy to bat after winning the toss while India captain Virat Kohli said he would have fielded anyway.
That decision from the hosts seemed sound after a devastating opening spell from Umesh Yadav and Ishant Sharma, although the latter struggled to get into his rhythm initially.
Bangladesh's openers Shadman Islam and Imrul Kayes both scored six each before departing to either bowler.
With skipper Mominul Haque and Mohammad Mithun now at the crease, the visitors have a serious job on their hands.
Bangladesh 2/12 in 6.6 overs: Young opener Shadman Islam follows Imrul into the pavillion and Bangladesh are reeling. A fuller one from Ishant Sharma takes the edge and carries to the wicketkeeper. Shadman departs for 6 and the visitors are 12 for 2. Mohammad Mithun joins his captain in the middle. Shadman Islam c †Saha b I Sharma 6 (24b 1x4 0x6)
Bangladesh 1/12 in 5.6 overs: After a feisty opening spell, Umesh Yadav draws first blood, removing Imrul Kayes. Kayes is caught behind and departs for 6 as Bangladesh are reduced to 12 for one. The skipper, Mominul Haque, now steps onto the field. Imrul Kayes c Rahane b Yadav 6 (18b 1x4 0x6)
Imrul Kayes will open with Shadman Islam.
Bangladesh go in with two pacers and two spinners. As expected, no Mustafizur Rahman in the lineup. The left-armer had been suffering from poor form and Abu Jayed Rahi and Ebadot Hossain will spearhead Bangladesh’s pace attack while Al Amin has been overlooked.
Bangladesh have won the toss and elected to bat first in the first Test at Indore today.
Bangladesh XI: Imrul Kayes, Shadman Islam, Mohammad Mithun, Mominul Haque (capt), Mushfiqur Rahim, Mahmudullah, Liton Das, Mehedi Hasan Miraz, Taijul Islam, Abu jayed, Ebadot
India XI: Rohit Sharma, Mayank Agarwal, Cheteshwar Pujara, Virat Kohli (capt), Ajinkya Rahane, Ravindra Jadeja, Wriddhiman Saha (wk), R Ashwin, Ishant Sharma, Mohammad Shami, Umesh Yadav