Moeen Ali and Jonny Bairstow rode their luck to post crucial half-centuries but Bangladesh's teenage debutant Mehedi Hasan confounded England with spin on the opening day of the first Test in Chittagong.
Moeen was given out three times by umpire Kumar Dharmasena but successfully overturned each decision, while Bangladesh spurned two reviews on the left-hander, who was finally out for 68 from 170 balls.
He put on an 88-run stand with Bairstow, who was dropped on 13 before going on to post 52 as England's middle-order resistance helped them close on 258 for seven on a pitch that is already offering plenty of turn.
All seven wickets to fall on day one came from the spinners, with 18-year-old off-break bowler Mehedi deeply impressive on his international bow as figures of five for 64 from 33 overs will attest.
Mehedi, who possesses an action that resembles a leg-spinner, opened the bowling as England 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.
Mehedi had already beaten the edges of both Test debutant Ben Duckett and captain Alastair Cook before making a breakthrough which would see England, who opted to bat first in hot and humid conditions, lose three wickets in the space of 14 balls.
Duckett exposed his wickets and paid the price as he was cleaned up for 14, while Cook, who became England's most capped Test player on his 134th appearance, made a tentative four before playing on to his own stumps attempting to sweep Shakib Al Hasan in the next over.
Gary 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.
Joe 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 survived on both occasions, with the first missing the stumps, while he was outside the line on the second.
England, though, lost Joe Root in the next over for 40 when he nicked Mehedi to slip, via a deflection from wicketkeeper Mushfiqur Rahim, while Ben Stokes (18) 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 spinner.
Bairstow was dropped at slip off Taijul Islam 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.
Bairstow passed 1,000 Test runs for the calendar year before the tea interval and appeared more confident at the crease as the final session wore on although Moeen was finally dismissed when he edged behind off Mehedi.
A single took Bairstow to his half-century off 111 balls but he added just two more to his total before he was undone by the new ball as a quicker one from Mehedi skidded on and thudded into the batsman's stumps.
That wicket ensured Mehedi became the youngest Bangladesh bowler to record a five-wicket haul on debut.
Chris Woakes (36no) and Adil Rashid (5no) took England to the close without any further casualties but Bangladesh, and in particular Mehedi, will be happy with their day's work.