Kohli eased his way to an unbeaten 191 while Ajinkya Rahane justified the faith shown in his abilities by the team management with a crisp 82 off 133 balls. The duo added 222 in little under 50 overs.
India smashed 121 runs in the opening session of the second day in 31 overs losing a single wicket.
The Indian skipper now has 22 boundaries to his credit in 230 balls. Rahane missed out on a century with young Mehedi Hasan Miraz taking a spectacular one handed diving catch off left-arm spinner Taijul Islam. He hit 11 boundaries in his innings.
The stand-out shot of the session came in Taskin's next over. A good full length delivery was just firmly pushed. It looked like an on drive where all that the skipper had done was to roll the wrists.
More From This Section
A couple of more boundaries off Taskin and a lofted boundary off Shakib Al Hasan brought about Kohli's 150.
Rahane, who had gained in confidence from yesterday's time at the crease, was more assertive today. His 50 came when he dispatched a full toss from Shakib to the cow corner. It was his 10th Test half century.
He could have been caught on 62 had Shabbir Rahaman held onto a tough chance at deep third man region.
Just when he was looking good for a hundred, it was Miraz who pulled off a spectacular catch after the batsman had played an inside out shot.
But there was no stopping Kohli as he continued to hammer the Bangladeshi bowlers with a deluge of boundaries before a successful DRS appeal saved him.
On 180, he was adjudged leg before by the on-field umpire after a delivery from Miraz spun sharply hitting him low on the pads.