Chasing 188 to win, Zimbabwe fell just short when Luke Jongwe, needing a six to win, was dismissed off the last ball of the match.
It was a controversial finish, however, after Afghanistan seamer Dawlat Zadran was allowed to keep bowling the final over despite having sent down two waist-high full tosses.
Jongwe was caught by Gulbadin Naib out in the deep to leave Zimbabwe on 182-7 in their 20 overs.
Malcolm Waller was the not out batsman on 49 with two sixes and two boundaries off 37 balls.Zadran finished with 3-32 off his four overs.
Afghanistan had won the toss and chose to bat, making 187-7 in their 20 overs.
Usman Ghani top-scored with 42 off 38 balls with a six and five boundaries while man-of-the-match Naib made 37 and Mohammad Shahzad, 33.
Veteran off-spinner Graeme Cremer returned impressive figures of 3-17.
Afghanistan skipper Asghar Stanikzai defended Zadran’s bowling, blaming the last-over beamers on the late-night damp which made it difficult to hold the ball.
“It’s a funny game. The dew was too much, that’s why the two beamers,” “Otherwise he’s a good bowler.” Stanikzai