Skipper Kohli (191) and wicketkeeper Wriddhiman Saha (4) were at the crease at lunch.
Ajinkya Rahane, overnight batting on 45, was the only batsman to be dismissed in the morning session.
He was caught by Mehedi Hasan off the bowling of Taijul Islam for 82. He played 133 balls and hit 11 boundaries.
India began the day at a commanding 356/3 with overnight unbeaten batsman Kohli and Rahane resuming their partnership.
India were put on a firm footing by opener Murali Vijay (108) and Cheteshwar Pujara (83).
Kohli remained unbeaten in 111 after the first day, with Rahane giving company on 45.
Kohli’s unbeaten 191-run innings was scored off 230 balls, punctuated by 23 hits to the fence.
The Kohli-Rahane partnership produced 222 runs for the fourth wicket.
The two began from where they left on the first day, giving no chance to the toiling Bangladesh bowlers.
A wicket for the visitors looked unlikely till Rahane played away from his body and was caught superbly by a diving Hasan at short cover.
Bangladesh couldn’t quite capitalise after achieving the unlikely wicket. Wicketkeeper Mushfiqur Rahim missed a stumping chance of Saha off the bowling of Taijul.
The Indian glovesman advanced far out of his crease, missed the ball but Mushfiqur, standing too far back from the stumps, failed to knock down the bails in time. Saha was on four when he got the reprieve.