Richie Berrington shone with the bat with a brisk 82 not out while Safyaan Sharif starred with the ball for Scotland with sensational figures of four for 24.
Chasing 142, Zimbabwe lost their first wicket on the first ball of their innings, as Wesley Madhevere was caught behind off Sharif for a golden duck.
The pacer struck again in his next over as Madhevere’s opening partner Tadiwanashe Marumani followed suit, becoming the quick’s second victim.
With 19 required from the last two overs, Zimbabwe were edging closer to victory. But brilliant death bowling from Chris Sole and Sharif sealed the deal for the hosts.
Earlier, Scotland won the toss and elected to bat. They got off to a shaky start as they lost their top three batters – George Munsey, Kyle Coetzer and Hairs (5) – inside three overs.
Scotland: 141/6 in 20 overs (Richie Berrington 82 n.o, Tendai Chatara 2/23, Luke Jongwe 2/28)
Zimbabwe: 134/9 in 20 overs (Safyaan Sharif 4/24). (Agencies)