Khan’s 4-12 helped restrict Bangladesh to 134-8 as the hosts surpassed the modest total to win by six wickets and take an unbeatable 2-0 lead in the three-match series.
Samiullah Shenwari, who hit 49 off 41 balls, and Mohamed Nabi, with an unbeaten 31, took Afghanistan home with seven balls to spare.
The Afghans seemed to be in trouble at 79-3 in the 14th over but Nabi smashed three fours and two sixes to ensure smooth sailing for his team during his 15-ball blitz.
But it was the 19-year-old Khan who set up the victory with his triple strike in an over and was poised to claim a hat-trick after sending back Tamim Iqbal, who top-scored with 43, and Mosaddek Hossain on consecutive deliveries.
Abu Hider denied Khan the hat-trick and went on to hit an unbeaten 21 off 14 balls to give the Bangladesh total respect after the visitors elected to bat first.
Khan, who had also starred in Afghanistan’s opening win of the series with his three wickets, got his second man of the match award.
Nabi also got two crucial scalps and even though fellow spinner Mujeeb Ur Rahman went wicketless the teenager gave away just 15 runs in his four overs.
Bangladesh off-spinner Mosaddek took two wickets to try and choke Afghanistan in their chase but the Bangladesh did not have enough runs on the board for their bowlers to defend.
The Asghar Stanikzai-led Afghanistan, who are tuning up for their debut Test against India starting June 14, are scheduled to play the final match of the series tomorrow at the same venue.
Bangladesh
Liton Das c Khan b Zadran 1
Tamim Iqbal b Khan 43
Sabbir Rahman c Shenwari b Nabi 13
Mushfiqur Rahim st Shahzad b Nabi 22
Mahmudullah Riyad b Janat 14
Shakib Al Hasan c Najibullah b Khan 3
Soumya Sarkar c Stanikzai b Khan 3
Mosaddek Hossain b Khan 0
A. Hider not out 21
N. Islam not out 6
Extras (b4, lb2, w2) 8
Total (8 wickets, 20 overs) 134
Did not bat: Rubel Hossain
Fall of wickets: 1-1 (Liton), 2-30 (Shabbir), 3-75 (Mushfiqur), 4-93 (Mahmudullah), 5-101 (Shakib), 6-103 (Tamim), 7-103 (Mosaddek), 8-108 (Soumya)
Bowling: Rahman 4-0-15-0, Zadran 4-0-42-1 (w1), Nabi 4-0-19-2, Janat 4-0-40-1, Khan 4-0-12-4 (w1)
Afghanistan (target 135)
M. Shahzad lbw b Abu Hider 24
U. Ghani c Soumya Sarkar b Rubel Hossain 21
S. Shenwari b Mosaddek Hossain 49
A. Stanikzai st Mushfiqur Rahim b Mosaddek Hossain 4
M. Nabi not out 31
S. Shafiq not out 0
Extras (lb2, w4) 6
Total (4 wickets, 18.5 overs) 135
Did not bat: N. Zadran, R. Khan, K. Janat, M. Ur Rahman, S. Zadran
Fall of wickets: 1-38 (Shahzad), 2-57 (Ghani), 3-79 (Stanikzai), 4-115 (Shenwari)
Bowling: Nazmul 4-2-14-0 (w1), Shakib 4-0-37-0, Rubel 3.5-0-38-1, Abu 3-0-14-1 (w3), Mahmudullah 1-0-9-0, Mosaddek 3-0-21-2
Toss: Bangladesh
Result: Afghanistan won by six wickets
Series: Afghanistan lead the three-match series 2-0
Umpires: Izatullah Safi (Afghanistan), Bismillah Jan Shinwari (Afghanistan)
TV umpire: Ahmed Shah Pakteen (Afghanistan)