Shehzad's 70 on Friday set Pakistan up for a 25-run victory in the first game of the tour, and he followed that up with 98 not out on Saturday as Pakistan posted 179 for one after being put in to bat by Zimbabwe.
Although Pakistan made a circumspect start to the innings, scoring 37 for one in the opening six overs as Nasir Jamshed was dismissed for 23, Shehzad opened up beautifully from the ninth over and regularly found the boundary.
Shehzad struck six sixes en route to the highest score by a Pakistani batsman in Twenty20 internationals, but missed an opportunity to reach three figures when he could only manage a single from the final ball of the innings.
Hafeez finished unbeaten on 54 from 40 deliveries, as Zimbabwe's bowlers all struggled against a commanding Pakistani batting performance.