Toomaj Salehi risks being hanged after the conviction on the Shariah charge of "corruption on Earth" by a Revolutionary Court
Afif, batting at number eight, hit eight fours and a six in his maiden international fifty that guided Bangladesh to 148-7 in 17.4 overs after the hosts restricted Zimbabwe to 144-5 in the rain-hit 18-overs-per-side match.
The hosts looked down and out when they lost their first six wickets for 60 runs before 19-year-old Afif shared 82 runs for the seventh wicket with Mosaddek Hossain to turn the match around.
Neville Madziva dismissed Afif in the final over of the innings but Mohammad Saifuddin took six runs from his next two balls to complete the win, which ended Bangladesh's six-match losing streak in all formats.
Mosaddek, who provided Afif brilliant support in the record stand, was unbeaten on 30 from 24 balls.
Afif's performance overshadowed an excellent effort by Ryan Burl who hit 57 off 32 balls to help Zimbabwe recover from 63-5 to post a competitive score.
Burl also claimed a wicket with his leg-spin bowling and took a stunning catch in the field before Zimbabwe let the momentum slip.
"(I) was trying to be positive from the front. I was excited to play, having got an opportunity after so long," said man-of-the-match Afif who was playing only his second Twenty20 international and first in almost two years.
Zimbabwe captain Hamilton Masakadza hailed his side's performance in a losing cause.
"Guys at the back did well to get us a fighting total. Ryan (Burl) struck the ball nicely and had a brilliant game today," he said.
Burl hit five fours and four sixes in his maiden T20I fifty and smashed 30 runs in one over off Bangladesh skipper Shakib Al Hasan.
Taijul Islam, Mustafizur Rahman, Saifuddin and Mosaddek claimed one wicket each for Bangladesh.
Zimbabwe will face Afghanistan in their next match of the tournament at the same venue on Saturday.
A thriller
Zimbabwe innings
B. Taylor c Mahmudullah b Taijul 6
H. Masakadza c Sabbir b Saifuddin 34
C. Ervine c Mosaddek b Mustafizur 11
S. Williams c & b Mosaddek 2
Timycen Maruma run out 1
Ryan Burl not out 57
Tinotenda Mutombodzi not out 27
Extras (lb2, w4) 6
Total (five wickets; 18 overs) 144
Did not Bat: Tony Munyonga, Neville Madziva, Kyle Jarvis, Tendai Chatara
Fall of wickets: 1-7 (Taylor), 2-51 (Ervine), 3-56 (Masakadza), 4-56 (Williams), 5-63 (Maruma)
Bowling: Shakib 4-0-49-0, Taijul 3-0-26-1 (w2), Saifuddin 4-0-26-1, Mustafizur 4-0-31-1(w2), Mosaddek 3-0-10-1
Bangladesh innings
Liton Das b Chatara 19
Soumya Sarkar c Madziva b Jarvis 4
Shakib Al Hasan c Masakadza b Chatara 1
Mushfiqur Rahim c Taylor b K Jarvis 0
Mahmudullah Riyad lbw b Burl 14
Sabbir Rahman c Burl b Madziva 15
Mosaddek Hossain not out 30
Afif Hossain c Masakadza b Madziva 52
Mohammad Saifuddin not out 6
Extras (b1, lb1, w3, nb2) 7
Total (seven wickets; 17.4 overs) 148
Fall of wickets: 1-26 (Liton), 2-26 (Soumya), 3-27 (Mushfiqur), 4-29 (Shakib), 5-56 (Mahmudullah), 6-60 (Sabbir), 7-142( Afif)
Did not bat: Taijul Islam, Mustafizur Rahman
Bowling: Williams 3-0-31-0, Jarvis 4-0-31-2 (nb1), Chatara 4-0-32-2 (nb1), Burl 3-0-27-1 (w1), Madziva 3.4-0-25-2 (w2)
Result: Bangladesh win by three wickets
Toss: Bangladesh
Umpires: Masudur Rahman (BAN), Sharfuddoula (BAN)
TV Umpire: Tanvir Ahmed (BAN)
Match Referee: Chris Broad (ENG)
Toomaj Salehi risks being hanged after the conviction on the Shariah charge of "corruption on Earth" by a Revolutionary Court
Aid groups warn any invasion would add to already-catastrophic conditions for Gaza's 2.4 million people
The American they will face Australia and Serbia on July 15 and July 17 as part of their preparation for the Paris Olympic Games
The leaders emphasise that the deal to release the hostages would bring an immediate and prolonged ceasefire in Gaza
Dubai-based Sumit Augustine has had a philosophical approach towards spending
The regional upswing also defies oil production cutbacks
It's a treatise that would determine the course of your life, not just academically, but as a person too
A US-based company is developing an eVTOL aircraft for commercial passenger service and is expected to start operations by 2025 or early 2026