The lazy elegance of Rohit (123 no off 129 balls) coupled with the unmatched swagger of skipper Kohli (96 no off 78 balls) ensured India treat Bangladesh's attack with utter disdain, knocking off a modest target of 265 in 40.1 overs.
This was after some inspired bowling changes from Kohli, including the introduction of part-time off-spinner Kedar Jadhav, which changed the complexion of the game with Bangladesh managing only 264 for seven in 50 overs.
And then came skipper Kohli, who treated the opposition attack as a bunch of net bowlers, adding 178 runs for the second wicket off 153 balls.
The Indian captain also reached a personal milestone of 8000 ODI runs in his 183rd match.
Also Read
Rohit's innings will be remembered for those pull shots and the amount of time he had to execute each one of them.
But Kohli's innings will be specifically remembered for two shots, or rather two pushes, off Mustafizur Rahaman -- they were the best of the Indian innings.
The gulf between the two teams was evident in the manner the Indian batsmen toyed with the Bangladesh attack.
Anything short outside the off-stump was cut with ferocity. If the short ball was on leg and middle, it was dutifully pulled by Rohit, Kohli or Dhawan.
They played all sorts of pull shots - Rohit primarily hit behind the square, Dhawan through the square and Virat in front of the square.
Rohit, who is playing his first international tournament in six months, once again showed during his 11th ODI hundred as to why he is so highly rated.
Earlier, Jadhav's 'golden arm' provided decisive twin blows, helping India restrict Bangladesh opting to bowl.
Jadhav's 2/22 in six overs brought India back in the game as he took the crucial wickets of Tamim Iqbal (70) and Mushfiqur Rahim (61) with his fastish off-breaks.
The two wickets proved to be the difference as Bangladesh only crossed the 260-mark instead of a projected 310 after Tamim and Rahim had added 123 runs for the second wicket in 21.1 overs.
The third powerplay (41-50) saw Bangladesh scoring only 62 runs, primarily due to a cameo from skipper Mashrafe Mortaza (30 no off 25 balls).
Bumrah's senior partner Bhuvneshwar Kumar (2/53) complemented him well with a couple of dismissals first up.
Bangladesh lost the momentum when Jadhav first got rid of the dangerous Tamim, who tried an ugly slog sweep to a delivery that was fired down the middle and leg. He missed the line completely to be bowled.
Jadhav was an inspired choice for Kohli as his fifth bowler Hardik Pandya had an off day, giving away 34 in his four overs, including an over in which he got Tamim out twice - caught off a free-hit and then bowled off a no-ball.
Ravindra Jadeja (1/48 in 10 overs) got Shakib Al Hasan (15) caught by Mahendra Singh Dhoni between the dismissals of Tamim and Rahim.
From 154 for two, Bangladesh slumped to 179 for five, again fluffing their lines during the crucial death overs.
Bangladesh's last hope for a big score was Mahmudullah Riyadh (21), who got a perfect yorker and he could have done nothing about it.
Earlier, both Tamim and Shakib didn't take too many risks but got the scoreboard ticking, raising hopes of a big total when they were comfortably placed at 154 for two.
Tamim's 82-ball innings had seven fours and a flicked six off Pandya, while Rahim hit four boundaries in his 85-ball knock. After three successive boundaries off a Bhuvneshwar over, Rahim was more keen on rotating the strike.
Disclaimer: No Business Standard Journalist was involved in creation of this content