Zimbabwe beat Pakistan for the first time in a T20I match in their 16th attempt, ending a nine-match losing streak in the process in Harare on Friday. This was also their first T20I win at home since beating India in 2016.
The 19-run win in a low-scoring game helped Zimbabwe level the series 1-1 with one game to go.
On a slow surface, Zimbabwe set Pakistan a target of 119, which seemed gettable for the most part. It ended up being the lowest score Pakistan have failed to chase down, as they were bowled out for 99.
They got off to a slow start, and then suffered a massive middle- and lower-order collapse, losing seven wickets for 21 runs in 26 balls to crash from 78 for 3 to their lowest T20I total since 2016.
Luke Jongwe, who made his comeback to the Zimbabwean team in this series after a five-year absence because of eye and head injuries, finished with the best returns by a Zimbabwean in T20Is - 4 for 18 - and took wickets at the top and bottom of the Pakistan line-up.
He was supported well by legspinner Ryan Burl, who took 2 for 21, the other tweakers in the attacks - Wesley Madhevere and Wellington Masakadza, who went at less than 5.50 run an over - and left-arm seamer Richard Ngarava, who bowled three overs for ten runs.
Babar Azam's 41 looked like it would take Pakistan over the line despite a growing required run-rate.
Pakistan needed to score at less than six runs an over to win when they started, but needed 47 runs off the last five overs, at a rate of over nine an over.
When Azam was dismissed, they fell apart, making Sunday's third match a decider.