Ishant Sharma claimed a five-wicket haul as India dismissed Bangladesh for only 106, quickly seizing control at the start of the historic day-night Test at Eden Gardens.
Having hammered the Tigers in the first match of the series, India appear destined to secure a sweep after they ended a dominant opening day on 174-3, giving them a 68-run lead over their injury-hit opponents.
Ishant showed a liking for the pink ball, taking 5-22 with support from Umesh Yadav (3-29) and Mohammed Shami (2-36) as the tourists were bowled out in 30.3 overs.
Bangladesh also required two concussion replacements, with Mehidy Hasan and Taijul Islam replacing Liton Das and Nayeem Hasan respectively after they were struck on the helmet while batting.
Virat Kohli became the first Indian - and only the sixth from any nation - to score 5,000 Test runs as captain, reaching stumps on 59 not out following a gritty 55 from team-mate Cheteshwar Pujara.
India's lethal pace attack had earlier torn through the Bangladesh batting line-up after Mominul Haque won the toss, Rohit Sharma taking a magnificent slip catch to remove the visiting skipper after Ishant saw off Imrul Kayes.
Yadav got one to nip back in and bowl Mohammad Mithun for a second-ball duck in the same over that he drew an edge from Mominul. Shami soon got in on the act too, cleaning up Mushfiqur Rahim.
Liton – one of only three batsmen to reach double figures for Bangladesh - retired hurt after taking a blow from Shami, while Nayeem was hit by the same bowler and although he batted on, the spinner lost his off stump when Ishant produced a peach of a delivery to end a 12-year wait for a five-wicket Test haul on home soil.
This is a first day-night five-day match with the pink ball for both sides, with India and Bangladesh the ninth and 10th teams to play a Test under the conditions.
In India's reply, Al-Amin Hossain had first-Test double-centurion Mayank Agarwal (14) caught by Mehidy in the gully and Rohit (21) fell leg before, offering no shot to one from Ebadat Hossain that jagged back in.
But Pujara and Kohli nudged India in front with a third-wicket stand of 94 after coming together on 43-2, though Ebadat got rid of the former under the floodlights.
Bangladesh were unable to use the spin of Mehidy given he was not a like-for-like replacement for Liton, who was taken to hospital for a check-up along with Nayeem, meaning Mithun took over wicketkeeping duties.