Shannon Gabriel took four wickets in three overs after Mominul Haque slammed a century on the opening day of the first Test between Bangladesh and West Indies in Chittagong on Thursday.
Bangladesh reached 315 for eight at stumps, thanks to Mominul's 120 off 167 balls -- his eighth Test hundred. He now shares the record with Tamim Iqbal for scoring the most Test centuries for Bangladesh.
It was his fourth century this year -- only India's Virat Kohli has scored as many Test centuries in 2018 so far.
Gabriel ended Mominul's record innings after the tea break to finish with 4-69 in a devastating spell that also included the prized wickets of Shakib Al Hasan (34), Mushfiqur Rahim (four) and Mahmudullah Riyad (three).
Electing to bat first, Bangladesh seemed to be coasting towards a big total once Mominul brought his hundred with a six and four in successive overs before the tea break.
But Gabriel struck back in the final session. He first had Mominul caught behind before successfully reviewing a not out leg-before decision against Mushfiqur Rahim in the same over.
In his next two overs, Gabriel bowled Mahmudullah and Shakib respectively to leave Bangladesh reeling on 235 for seven, from a solid 222 for three.
Left-arm spinner Jomel Warrican bowled Mehidy Hasan for 22 to pile misery on Bangladesh, before the tail-enders restored some parity.
Taijul Islam and teenage debutant Nayeem Hasan added 56 runs for the unbroken ninth-wicket stand, guiding Bangladesh past the 300-run mark.
Taijul -- who was reprieved twice by the third umpire -- was unbeaten on 32 while Nayeem was 24 not out when bad light brought early stumps.
Mominul, who hit 10 fours and a six, dominated the opening two sessions to complete his third century in consecutive innings at the Zahur Ahmed Chowdhury Stadium.
He helped steady Bangladesh's innings after pace bowler Kemar Roach struck in the first over of the morning, dismissing opening batsman Soumya Sarkar for a duck.
Mominul shared 104 runs with Imrul Kayes for the second wicket and another 48 runs with Mohammad Mithun for the third.
Leg-spinner Devendra Bishoo dismissed Mithun for 20 to give West Indies their only success of the second session.
Bishoo could have also taken the wicket of Mominul, had Dowrich not dropped a sharp chance when the batsman was on 67.
Warrican earlier struck at the stroke of lunch when he had Imrul caught by Sunil Ambris at forward short-leg for 44.
Warrican was unlucky not to get Imrul early when the left-hander was reprieved by a no-ball on 16.
The batsman was also put down by Roston Chase at second slip off Roach on three.