Hasan took 7-58 and 5-59 in the first and second innings respectively to help the Tigers bowl out the visitors for 111 and 213 runs on the third day of the second Test.
Bangladesh made 508 runs in their only innings at Sher-e-Bangla National Stadium to claim their first-ever victory by an innings margin.
It was Bangladesh's first Test series win in four years, after they won the opener in Chittagong by 64 runs.
West Indies wilted for 213 all out in the second innings after earning the dubious distinction of becoming the first side ever to be asked to follow-on by Bangladesh in a Test match.
Big-hitting Shimron Hetmyer scored an attacking 93 off 92 balls with nine sixes and a four to prevent a total Caribbean collapse in the second innings.
But Mehidy stopped Hetmyer from scoring his maiden Test century when the batsman went for a 10th sixth, but wound up delivering it to Mohammad Mithun at long-on.
He then removed Jomel Warrican to complete his second five-wicket haul of the game before finishing with match figures of 12-117 -- the best ever Test haul for a Bangladeshi bowler.
The 21-year-old spinner improved his own record of 12-159 against England in 2016 at the same ground.
Kemar Roach provided late entertainment with an unbeaten 37 off 49 balls with seven fours, but it only delayed the inevitable.
Taijul Islam wrapped up the innings and match when he trapped Shermon Lewis for 20 to finish with 3-40.
Bangladesh captain Shakib Al Hasan hailed his team's effort after the match.
"We did the process right and we did well in every department. Overall a very good team effort," he said.
West Indies' trouble began from the very start of the third day's play when they lost five wickets in less than an hour, after resuming their first innings on 75-5.
Hetmyer, who also top-scored in the first innings with 39, hit Mehidy for a six in the second over of the day, but the off-spinner flummoxed him for a sharp return catch to start the collapse.
Bangladesh never looked back as Mehidy claimed three more wickets in quick time, before Shakib wrapped up the innings to finish with 3-27.
West Indies skipper Kraigg Brathwaite lamented the defeat.
"As batsmen we didn't do our jobs. We didn't get a partnership and we let ourselves down on the field," he said.
The West Indies will also play three one-day internationals and three Twenty20 internationals against Bangladesh during their month-long tour.AFP