Yorkshire’s Jonny Bairstow broke the record for the most runs scored by a wicket-keeper in a calendar year as England built a competitive lead against Bangladesh on day three.
Bairstow’s total of 47 took him to 1,091 runs in 2016 as he shared a valuable partnership with Ben Stokes to put England in control on a dusty, spin-friendly wicket in Chittagong.
The York-born wicket-keeper has scored three centuries and five fifties in 2016 at an average of 72.73 and he passed Zimbabwean Andy Flower’s record of 1,045 set 16 years ago.
England had been in trouble at 62-5 following a second top order collapse of the match but finished on 228- 8, a lead of 173 over the hosts.
Stokes was the main man in the rescue mission as he powered three sixes in an innings of 85, sharing a partnership of 127 with Bairstow along the way.
Chris Woakes and Stuart Broad finished unbeaten on 11 and 10 respectively.
That England slipped to 62 for five was largely down to the handiwork of Shakib Al Hasan, who ended the day with five for 79 - although England’s batsmen were at least partial authors in their downfall with several loose strokes.
Shakib started the day in ignominious fashion by gifting his wicket away, senselessly charging at Moeen Ali only to be stumped, while nightwatchman Shafiul Islam cracked Adil Rashid to mid-on.
England’s decision not to take the new ball was rewarded when Stokes, who claimed the key wicket of Mushfiqur Rahim on Friday evening to begin the slide, found some reverse swing to trap Mehedi Hasan in front.
Sabbir Rahman was hit on the helmet by a fired up Stokes, who then induced the edge and Alastair Cook took a low catch at first slip.
Stokes then brought the ball back in to castle last man Kamrul Islam Rabbi three balls later to finish with figures of four for 26.
England were immediately under siege from spin and although openers Cook and Ben Duckett seemed to settle well, that all changed before the lunch interval.
Cook will not look back on an England record 134th Test appearance with too much satisfaction after edging Mehedi Hasan to slip on 12, while Joe Root missed a sweep and was pinned in front by Shakib, who then had debutant Duckett caught at short leg.
From 26 without loss, England had stumbled to 28 for three, which became 46 for four when the under-fire Gary Ballance glanced a sweep to leg slip for his second single-figure score of the match.
Moeen’s pained 14 was then ended when he under-edged a sweep off Shakib onto his pad and Mushfiqur took a tremendous diving catch.
Stokes and Bairstow were understandably cautious - although the latter’s second run and his 1,046th in 2016 saw him pass the record set by Andy Flower in 2000.
Stokes cast off the shackles with a reverse sweep for four for England’s first boundary in 15 overs before launching Taijul Islam into the stands for a meaty six, while another leg-side maximum took him to his fifty.
Bairstow was once again the understudy, playing a similar role to the one he played when the pair set a world record sixth-wicket partnership against South Africa earlier this year.
While that 399-run stand was played on a featherbed of a Cape Town pitch, this partnership on a turning wicket was arguably more impressive, with Stokes, in particular, rock-solid in defence and ruthless to long hops from the spinners.
Neither offered even a half-chance so it was something of a surprise when the 127-run partnership ended as Bairstow chopped Rabbi onto his stumps three short of his half-century - the first England wicket in the match to fall to a seamer.
Stokes seemed a certainty for a third Test century, and his second of the tour having already thumped a hundred in the one-day series, but he fell lbw to Shakib - who also trapped Rashid in front for nine, with the not-out decision overturned on review.