Teenage off-spinner Mehedi and experienced left-arm spinner Shakib Al Hasan shared five wickets between them as Bangladesh reduced England to 173-5 at tea on the opening day in Chittagong.
Moeen, batting at number five, struck eight fours and a six on his way to 61, but not before a string of nervous reviews kept his innings afloat.
He was given out three times by umpire Kumar Dharmasena but his decisions were overturned on each occasion.
Bangladesh reduced England to 81-3 in the first session and struck again through persistent bowling from Mehedi, who removed Joe Root for 40 after Shakib's eventful over.
Root had looked in good touch until he edged one that took a deflection off wicketkeeper Mushfiqur Rahim's gloves before being grabbed by Sabbir Rahman at slip.
Shakib then bowled Ben Stokes (18) for his second wicket, but Jonny Bairstow stood firm with an unbeaten 26 to give Ali some company in their unbroken 67-run sixth wicket stand.
Shakib removed Alastair Cook for just four, in a disappointing start for the skipper as he became England's most capped player with 134 Tests.
After Cook won the toss and elected to bat in the first of the two Tests, England immediately faced a barrage of spin bowling on a pitch offering plenty of turn.
Mehedi opened the attack for the hosts, beating Duckett on several occasions before he spun one beautifully to hit the middle stump as soon as the England debutant offered some room.
Ballance was initially given not out lbw, but Bangladesh reviewed the decision in their favour, with the replay showing the ball had struck his pad on the back foot first before touching the bat.
England have included Gareth Batty in the side, giving the Surrey captain his first national cap in more than 11 years, while Bangladesh have handed batsman Sabbir his debut.
Disclaimer: No Business Standard Journalist was involved in creation of this content
