Coming together after India had got off to a poor start, Dhawan and Kohli produced a 94-run partnership as the visitors overhauled the 121-run target in 13.5 overs.
Dhawan, who has been a flop throughout the tournament, finally found his touch when it mattered most, scoring 60 runs off 44 balls with nine boundaries and a six.
Kohli remained unbeaten on 41 runs off 28 balls with five boundaries. India skipper Mahendra Singh Dhoni added the finishing touch with 20 runs off just six deliveries, with one hit to the ropes and two sixes.
Pacer Al-Amin Hossain (1/30) gave Bangladesh some early hope by dismissing Rohit Sharma early. Chasing a tricky target in front of a packed stadium rooting for the hosts, Rohit probably found the pressure too much to handle as he edged one that was moving slightly away to Soumya Sarkar at first slip.
But that was one of the few moments of joy that the Bangladesh players and the capacity home crowd could find as Kohli and Dhawan came together to pull the visitors out of trouble.
The Delhi duo kept the required run rate within manageable limits with regular hits to the fence and some excellent running between the wickets.
It needed a superb effort in the field by Sarkar off Taskin Ahmed’s (1/14)bowling to see the back of Dhawan. The Delhi batsman attempted a square drive off a full toss, but Sarkar dived to his right to pluck the ball inches off the ground.
But by then, India were well on the road to victory and Dhoni strode in to finish off the job with some trademark power-packed hits.
Earlier, Mohammad Mahmudullah produced some lower order fireworks as Bangladesh posted 125/5 in 15 overs.
Walking in with Bangladesh in trouble at 75/5, the right-hander proceeded to hit two boundaries and an equal number of sixes in his 13-ball innings to remain unbeaten on 33.
Sabbir Rahman gave him crucial support from the other end with 32 runs from 29 balls. The duo produced a 45-run partnership to help the hosts to a competitive total.
Indian pacers Jasprit Bumrah (1/13) and Ashish Nehra (1/33) made good use of the seam friendly conditions to remove the Bangladesh openers early on.
Off-spinner Ravichandran Ashwin, who opened the Indian bowling, had figures of 1/14 while left-arm spinner Ravindra Jadeja (1/25) also bagged a wicket.
Bangladesh had a decent start with 11 runs in the first two overs before Bumrah pegged back the run rate with just three runs in the third over.
The Bangladesh openers tried to push up the run rate with Sarkar smashing two boundaries in the next over. But Nehra struck back immediately as he mistimed the last ball of the over while playing across the line to offer an easy catch to Hardik Pandya at mid-off.
Bumrah then piled on the pressure by trapping Tamim Iqbal leg before.
With both openers gone, Shakib al Hasan and Rahman set about trying to rebuild the innings.
They were cautious in the initial stages before trying to break the shackles with some big hits. The duo added 34 runs between them before Shakib was caught by Bumrah at short fine leg while trying to sweep Ashwin.
Bangladesh suffered back to back jolts in the 12th over when Mushfiqur Rahim was found short of his crease while attempting a second run, while Mashrafe Mortaza holed out to deep midwicket in the very next ball as Bangladesh reeled at 75/5.
Mahmudullah then provided the crucial big hits later on to help the hosts to a strong finish.