Rashid Khan starred with bat and ball to put Afghanistan in control of their one-off Test against Bangladesh at the end of day two.
Afghanistan led by 148 runs at the close of play on Friday, with Bangladesh reduced to 194-8 in their first innings thanks largely to the work of Rashid, who was captaining the Test team for the first time.
The 20-year-old skipper made 51 from 61 balls as Afghanistan posted 342, their highest total in the longest format, and then wreaked havoc with the ball by taking 4-47.
Having managed no more than 12 in an innings in his previous two Test appearances, Rashid arrived at the crease when Asghar Afghan - unbeaten on 88 overnight - threw away his wicket to Taijul Islam to fall short of a maiden Test ton on 92.
But Afghanistan – who resumed on 271-5 – were already in a strong position following a century from Rahmat Shah, Rashid's predecessor as captain, the previous day.
Rashid picked up the baton and did the heavy lifting himself after Afsar Zazai's (41) dismissal appeared to put Bangladesh in the ascendancy, with the skipper's two fours and three maximums bringing up a speedy half-century.
Mehidy Hasan Miraz got Rashid caught and bowled to close the innings but Afghanistan immediately made life difficult for Bangladesh, removing Shadman Islam for a duck in the first over.
Rashid ended a potentially dangerous innings from Liton Das on 33, sneaking under his bat, and then got captain Shakib Al Hasan and Mushfiqur Rahim in the space of three balls.
Mominul Haque (52 off 71) steadied Bangladesh slightly but Rashid had another when he took out Mahmudullah's off stump.
A fightback of sorts from Mosaddek Hossain (44 not out) and Taijul (14 no) had Bangladesh still going at stumps but with a great deal of work to do to remain in touch.