Moeen was given out three times by umpire Kumar Dharmasena but successfully overturned each decision, while Bangladesh spurned both reviews on the left-hander, whose unbeaten 61 steered the tourists to 173 for five at tea.
On a pitch that is already offering plenty of turn, all five of England’s wickets have fallen to spin, including three in 14 balls inside the first hour after they opted to bat first in hot and humid conditions at the Zahur Ahmed Chowdhury Stadium.
From 18 for no wicket, England lost debutant Ben Duckett, captain Alastair Cook and Gary Ballance as they were given an early taste of the conditions they are likely to face on the subcontinent this winter, with five Tests to follow in India after this two-match series.
Spin was apparent from the off as Bangladesh, who included only two pacemen in their line-up, turned straight away to off-break bowler Mehedi Hasan.
Eighteen-year-old Mehedi, one of three Tigers debutants alongside all-rounder Sabbir Rahman and seamer Kamrul Islam Rabbi, beat the edges of both England openers early on before making the breakthrough.
Duckett, selected ahead of Haseeb Hameed to become Cook’s ninth opening partner following the retirement of Andrew Strauss four years ago, exposed his wickets and paid the price as he was cleaned up for 14.
Cook became England’s most capped Test player on his 134th appearance but he made just four before playing on to his own stumps attempting to sweep Shakib Al Hasan in the next over.
Ballance was next to go as England lost three wickets for three runs, the Yorkshire left-hander beaten by an arm ball from Mehedi, with the umpire’s not out decision overturned on review.
Root initially led the recovery from 21 for three with trademark counter-attacking verve although Moeen was given a let-off when Bangladesh failed to review an lbw decision that would have gone in their favour - it would prove costly later.
They did challenge another not out lbw decision but Moeen survived on umpire’s call, and the batsman was vindicated by his own review after being given out on the sweep in the penultimate over of the first session when Ultraedge detected a faint noise.
He was given out twice more to Shakib in the over after lunch but he remarkably survived on both occasions, with the first missing the stumps, while he was outside the line with the second.
England, though, lost Joe Root in the next over for 40 when he nicked Mehedi into the hands of slip, via a deflection from wicketkeeper Mushfiqur Rahim, while Ben Stokes was bowled by Shakib from one that spun sharply back in.
Moeen survived another Bangladesh review, with Mehedi’s delivery pitching outside leg, and cut loose with a booming straight six off the teenage spinner.
Jonny Bairstow (26no) was dropped at slip in the preceding over but Moeen, boosted up to five in the order so England could include three spinners and as many seamers, brought up a charmed fifty with his sixth four through the covers.