West Indies was dismissed for 409 in its first innings after resuming on 223-5. Gabriel (2-31) helped to reduce Bangladesh to 105-4 — still 304 runs behind — at stumps on the second day.
Mushfiqur Rahim (27) and Mohammad Mithun (6) are at the crease.
Joshua Da Silva earlier struck a superb 92 for West Indies with Nkrumah Bonner hitting 90 and Alzarri Joseph scoring 82.
Wicket-keeper Da Silva was part of two significant partnerships which propelled West Indies past 400.
He and Bonner put on 88 runs for the sixth wicket before Joseph joined Da Silva in a 118-run stand for the seventh.
Bonner looked solid while Da Silva cut fast bowler Abu Jayed for a boundary past backward point to begin his day.
Da Silva continued his aggressive approach but offspinner Mehidy Hasan broke through to dismiss Bonner 10 runs short of his first century. His knock included seven boundaries.
Joseph counterattacked right after coming to the crease and kept the scoreboard ticking rapidly.
Da Silva brought up his second test 50 with a reverse-swept boundary against Mehidy Hasan.
He batted sensibly and appeared set for his first ton but left-arm spinner Taijul Islam deceived him with a delivery to take his 100 test wickets at home.
Joseph hit eight fours and five sixes before he edged behind off Abu Jayed.
West Indies collapsed after Joseph's dismissal, losing its last four wickets for 25 runs.
Gabriel struck twice in his first two overs. He dismissed Bangladesh opener Soumya Sarkar for 0, after he played a lazy shot to short midwicket, before Najmul Hossain (4) edged the ball to gully.
At 11-2, captain Mominul Haque and opener Tamim Iqbal started the repair job. Their 58-run partnership was ended when the skipper played a cut shot against offspinner Rahkeem Cornwall to be out for 21.
Fast bowler Joseph dismissed Tamim for 44.
West Indies won the first of two tests by three wickets.