Bangladesh lost nine wickets in the space of 49 runs to be bundled out at a sorry 220, but the spinners picked three England wickets inside 11 overs to bring the hosts back to the game before rain stopped first day’s play.
Winning the toss at the Sher-e-Bangla National Stadium in Dhaka on Friday, Bangladesh skipper Mushfiqur Rahim, in for his 50th Test cap, opted to bat first.
Although Imrul Kayes could not manage more than a solitary run as Chris Woakes removed him in the day’s third over, Tamim and Mominul soon put Bangladesh in control.
The hosts looked comfortable till the 41st over, but once Tamim was pinned leg before the wicket by Moeen Ali, more disaster followed.
Tamim hit 12 fours in his 104-run innings, but he will rue missing the chance of making it bigger. Ali soon picked up Mominul as well, striking again four overs later as the left-handed batsman, who made 66 with 10 fours, was bowled.
Ben Stokes and Chris Woakes then joined the party as seven of the Tigers eleven failed to reach double figures.
Moeen bagged a five-for to lead the English turnaround while Woakes netted three and Stokes grabbed two.
Bangladesh bowlers took little time to fight back, as Shakib Al Hasan removed Ben Duckett in the second over thanks to a Mushfiqur Rahim catch.
Mehedi Hasan Miraz then removed English skipper Alastair Cook and Gary Ballance as England were soon down to 42 for 3.
Eight more runs for the visitors and rain forced the umpires to call it a day. The English side will hope Joe Root and an in-form Moeen lead them to a decent total, but the Tigers will be determined to win after losing the first Test in Chittagong.
The fans will only pray rain goes away and does not affect the game when play resumes on Saturday morning.