First-timers Nepal upset a higher ranked and more experienced Afghanistan by nine runs in Sylhet to record their second win in the World T20 tournament on Thursday.
Nepal, sent in to bat, were lifted by opener Subash Khakurel's career-best 56 to 141-5 and restricted their opponents to 132-8 in a Group A match.
The defeat meant Afghanistan lost two of their three matches and failed to reach the next round.
Paceman Jitendra Mukhiya, who finished with 3-18 in four overs, jolted Afghanistan with two early wickets, while spinner Shakti Gauchan took two wickets in one over to leave Afghanistan in tatters on 50-5.
Shafiqullah Shafiq (36) and Asghar Stanikzai (49) did their best to stop the collapse. But a 24-run target in the last over proved way beyond Afghanistan's reach.
Nepal skipper Paras Khadka showed delight in the win.
"Afghanistan are a good team and this win showed we are improving with every day and it was a very good tournament for us," said Khadka whose country played their first-ever major cricket event.
Afghanistan captain Mohammad Nabi was upset at the defeat.
"It was a big event but we didn't start well and didn't finish it well either, so we are upset," said Nabi.
Earlier Khakurel anchored the Nepalese innings with some sensible batting, adding an invaluable 76 for the fourth wicket with Sharad Vesawkar who made 37.
Khakurel hit six boundaries and a six during his 53-ball knock before falling to paceman Shapoor Zadran, the best of the Afghan bowlers with 2-19.
Nepal will now await the outcome of the last match in the group, with hosts Bangladesh needing a win against the United Arab Emirates to go through to the next round.
Ireland, the Netherlands and Zimbabwe are in contention to qualify for the next round from Group B.
The top team from each group will join eight seeded teams in the Super-10 stage, starting Friday.
Nepal 141 for 5 in 20 overs (S. Khakurel 56, S. Vesawkar 37; Shapoor Zadran 2-19)
Afghanistan 132-8 in 20 overs (Asghar Stanikzai 49, Shafiqullah Shafiq 36; J. Mukhiya 3-18)