Dhawan, who made just 19 in his previous three innings, smashed 60 off 44 balls guiding India to 122-2 in 13.5 overs after Bangladesh notched up 120-5 in a rain-drenched pitch.
The match at the Sher-e-Bangla National Stadium in Dhaka was reduced to 15-over-a-side affair after storms delayed the start of play for two hours.
Dhawan and Virat Kohli, who scored 41 not out, put on 94 runs for the second wicket partnership.
Bangladesh’s Al-Amin Hossain made an early strike to remove Rohit Sharma, who edged a catch to Soumya Sarkar, but Dhawan and Kohli denied any further breakthrough with sublime batting.
Taskin Ahmed ended Dhawan’s innings in his second spell as Soumya again took a brilliant low catch at point, but it was too little too late for the home team.
Dhawan hit nine fours and a six, while Kohli struck five fours.
Indian skipper MS Dhoni, 20 not out, hit two sixes and a four in Al-Amin’s final over to complete the victory.
“Thanks to the top-order batsmen, they have done the bulk of the job,” Dhoni said after the match.
“We are on track for the World T20,” he added, referring to the Twenty20 World Cup beginning in India next week.
It was India’s sixth Asia Cup title — although their previous winning meets were all held in the old 50-over, one-day international format.
Earlier, an in-form Mahmudullah struck an unbeaten 33 off 13 balls to give Bangladesh what looked like a fighting score on a wet pitch.
Mahmudullah, who struck two fours and as many sixes, put on 45 runs in an unbroken sixth wicket stand with Sabbir Rahman.
Sabbir anchored the innings with an unbeaten 32 off 29 balls.
Batting first, Bangladesh made a positive start as Soumya and Tamim Iqbal gathered 27 runs in the opening partnership.
Indians Ashish Nehra and Jasprit Bumrah struck in back-to-back overs to dismiss Soumya (14) and Tamim (13), but Shakib Al Hasan ensured Bangladesh did not lose their way.
Shakib made 21 off 16 balls with three boundaries, before an attempted slog sweep off Ravichandran Ashwin brought an end to his innings.
Bangladesh’s Mushfiqur Rahim was run out for four and skipper Mashrafe Mortaza followed him in the next ball, giving Kohli a catch at deep midwicket off Ravindra Jadeja.
The 30-year old right-hander, who was unbeaten in his previous three innings in the tournament, hit Hardik Pandya a four and two sixes to score 19 runs in the penultimate over.
Bangladesh skipper Mashrafe praised his team-mates for their effort.
“We couldn’t win the final but congratulations to the boys for making it this far,” he said. “They played really well.”