India spared Bangladesh the ignominy of a follow-on but grabbed an overall lead of 308 with seven wickets in hands to seize control of the opening Test in Chennai on Friday.
The hosts posted 376 in their first innings, a remarkable recovery from a precarious 34-3, riding a match-defining seventh wicket partnership of 199 between Ravichandran Ashwin (113) and Ravindra Jadeja (86).
Seamer Jasprit Bumrah then wrecked Bangladesh, who folded for 149 handing India a significant lead of 227 in the bowler-dominated contest.
Seventeen wickets tumbled on a frenetic day two with India reaching 81-3 at stumps. Shubman Gill was batting on 33 with Rishabh Pant on 12 at the other end.
Jadeja said India would like to add another 120-150 runs to their lead before having a go at their opponents on Saturday.
"There is something in the wicket for the fast bowler and for the spinner also. The odd ball is spinning or keeping low. So I think all five (India) bowlers will be in the play."
On a red-soil pitch at the M.A. Chidambaram Stadium offering bounce and carry, India's seamers left Bangladesh gasping at 40-5.
Bumrah struck in the first over of the Bangladesh innings, enticing Shadman Islam into shouldering arms to a ball that went on to hit the top of the off-stump.
Akash Deep then struck twice in two balls - uprooting Zakir Hasan's middle stump and flattening Mominul Haque's off - to compound the tourists' woes.
Mohammed Siraj dismissed Bangladesh captain Najmul Hossain Shanto (20) while Bumrah removed Mushfiqur Rahim - both caught in the slip.
The 51-run stand between Shakib Al Hasan (32) and Litton Das (22) was the lone resistance by the visitors but both fell to Jadeja after fluffing sweep shots against the left-arm spinner.
Mehidy Hasan Miraz made 27 not out down the order but Bangladesh still fell short of the 150-mark. Bumrah was the pick of the India bowlers by claiming 4-50.
India wobbled early and lost both openers inside seven overs when they came out to bat for the second time.
Skipper Rohit Sharma edged Taskin Ahmed to the slip, while Yashasvi Jaiswal was caught behind to Nahid Rana playing a loose shot.
Virat Kohli (17) fell lbw to Miraz and opted not to review the decision though replays suggested he had nicked the ball.
Gill looked unperturbed though and played some crisp drives.