The veteran batter hit 126 to lead Bangladesh to 369 all out on Wednesday despite offspinner Andy McBrine's career-best 6-118.
Bangladesh spinners then came into the act on an increasingly deteriorating pitch to reduce the Irish to 4-27 at stumps, leaving them needing 128 runs to force the hosts to bat a second time.
Skipper Shakib Al Hasan and fellow left-arm spinner Taijul Islam shared four wickets to keep Bangladesh's nose in front.
Peter Moor was on 10 and Harry Tector, the half-centurion of first innings, was on eight.
"We've good batters right in the middle," McBrine said. "I'm pretty sure they could potentially go get big scores. We have to see out that first half-an-hour tomorrow morning and who knows what could happen."
Shakib earlier missed his sixth century by 13 runs but put Bangladesh in control, alongside Mushfiqur after the early trouble.
After resuming the day on 2-34, Bangladesh lost Mominul Haque in the third over when he was bowled by Mark Adair (2-64) with a delivery that moved slightly.
Shakib and Mushfiqur shared 159 for the fourth wicket, scoring runs at almost five per over, which epitomised Bangladesh's aspiration of playing attacking cricket.
Shakib started with a boundary on the first ball, driving Adair's half-volley through cover and he didn't look back.
He raised his 31st Test half-century off just 45 balls, whipping a turning delivery off legspinner Ben White for four through long-on.
Mushfiqur played with caution in contrast to Shakib's aggressive approach.
McBrine broke the dangerous partnership as Shakib lazily paddled a delivery well outside of off stump after hitting 14 fours for his 87 off 94.
"The plan was to bowl wider to Shakib after lunch, and obviously, that worked," McBrine said.Â
"Then, we tried to keep it as simple as possible. Just trying to use the surface and bide your time. If you keep biding your time, chances will come."
Mushfiqur went into high gear after Shakib's dismissal and Liton Das complemented him well, starting with three straight fours against Curtis Campher.
Mushfiqur completed his 10th Test century and third in the last eight innings off 135 balls, with an outside edge against Adair that flew between wicketkeeper and a wide slip.
Ireland's poor ground fielding and lacklustre bowling also boosted Bangladesh as the duo kept the scoreboard ticking over.
They also missed a run-out chance after Liton and Mushfiqur were involved in a mix-up. But with Liton stranded halfway down the pitch, wicketkeeper Lorcan Tucker fumbled.
But it didn't cost them as Liton one ball later was caught at mid-off for 43, giving White his debut wicket. White ended with 2-71.
Bangladesh then experienced a collapse, losing five wickets for 38 runs.
The rot began with Mushfiqur caught at long-on as he tried to hit a six off a McBrine delivery.
Mushfiqur's 126 off 166 balls included 16 fours and one six.
Mehidy Hasan meanwhile picked up his fourth Test half-century amid the regular wickets tumbling. He was the last batter out after hitting 54.
Ireland are playing their first Test since 2019 and have six players on debut in cricket's longest format. The Irish won the toss and elected to bat first on Tuesday.