Left-arm spinner Kuldeep Yadav shone with both bat and ball as India plunged Bangladesh into serious trouble on the second day of the first Test in Chattogram on Thursday.
Bangladesh collapsed to 133-8 at stumps, with Kuldeep picking up 4-33 after his 40 made a vital contribution to India's first innings total of 404 runs.
Mehidy Hasan, 16 not out, and Ebadot Hossain, 13 not out, survived the day but Bangladesh still needed 71 runs to avoid a follow-on.
"Losing eight wickets is disappointing," admitted Bangladesh spin coach Rangana Herath, insisting nonetheless that the game was not over.
"But you know this is Test cricket, three days to go, we need (to) hang in there and we need to fight hard," he said.
Mohammad Siraj ripped the hearts out of Bangladesh's top order with 3-14 before Kuldeep -- playing the series as a late replacement for Ravindra Jadeja -- mesmerised the home side with his left-arm spin.
Siraj dismissed Najmul Hossain on the first ball of the Bangladesh innings as the hosts made the worst possible start in reply to India's total. Umesh Yadav complemented his efforts by bowling Yasir Ali for four three overs later.
"Red ball is my favourite format," Siraj said after the day's play.
"It is where you have to maintain a consistent line and length and that helps me in white-ball cricket also."
Liton Das offered some counter-punch with five fours, including three off consecutive balls from Umesh, before Siraj bowled him for 24. The paceman also claimed the wicket of debutant opener Zakir Hasan for 20.
Kuldeep struck off his second ball, forcing Bangladesh captain Shakib Al Hasan to give Virat Kohli a catch at slip for three, reducing Bangladesh to 75-5.
The 28-year-old spinner then removed Nurul Hasan (16), Mushfiqur Rahim (28) and Taijul Islam (0) to put India firmly in control.
India were all out in the second session after adding 126 runs to their overnight 278-6, with Bangladeshi off-spinner Mehidy finishing with 4-112 and left-arm spinner Taijul taking 4-133.
Ravichandran Ashwin defied Bangladesh's attack to hit 58, the third half-century in the India innings after Cheteshwar Pujara's 90 and Shreyas Iyer's 86.
Ashwin received invaluable support from Kuldeep as the duo added 92 runs for the eighth wicket.
Iyer resumed on 82 but missed out on a hundred as Ebadot bowled him in the eighth over of the morning.
Ebadot could have dismissed Iyer in his previous over had Liton not dropped the catch at fine leg.
Iyer, who was dropped on 67 and miraculously survived being bowled by Ebadot on 77 when the bails failed to dislodge on the opening day, hit 10 fours in his 192-ball innings.