Malik struck 112 off 76 balls and shared a 199-run partnership with Haris Sohail (89 not out) as Pakistan set a target of 375 in Lahore.
Elton Chigumbura hit his maiden one-day international century with 117 from 95 balls and Hamilton Masakadza a run-a-ball 73 in reply, but Zimbabwe were always too far adrift in the chase.
The hosts won the toss and Mohammad Hafeez and Azhar Ali built on a conservative start to build a partnership of 170.
Hafeez brought up Pakistan’s three figures with a boundary in the 19th over before Zimbabawe missed a chance to end the partnership when Azhar, on 52, was dropped by Chris Mpofu off the bowling of Prosper Utseya.
The visitors finally made the breakthrough when Azhar top edged to Tinashe Panyangara off the bowling of Utseya.
He had made 79 from 76 balls, featuring nine fours and two sixes.
It came with the last ball of the 26th over and Utseya claimed wickets with consecutive deliveries when he bowled Hafeez for 86.
That prompted a hat-trick ball which Sohail survived before, with Malik, building a formidable total.
Malik increased the rate as the pair piled on the runs with Sohail ending the innings unbeaten on 89 from 66 balls with four fours and two sixes.
Malik was bowled by Panyangara with the last ball of the innings after hitting 12 fours and two sixes in his century.
Zimbabwe made a solid start in reply, reaching 56 before Sikandar Raza (36) was caught by Hafeez off the bowling of Anwar Ali.
Sibanda was next to go for 23 after he was caught and bowled by Wahab Riaz as Zimbabwe slipped to 65 for two.
Tight bowling meant Zimbabwe were unable to cut loose and boundaries were in short supply.
Masakadza hit a six in the 32nd over off Hafeez before Chigumbura was dropped with the last ball of the over by Shafiq.
Masakadza struck another maximum in the next over but fell two balls later, caught on inside the boundary rope by Hammad Azam off the bowling of Shoaib.
That left the visitors 187 in arrears with 17 overs and a ball remaining.
Chigumbura, on 66, was dropped again and built a good partnership with Sean Williams, even though the required rate seemed beyond them.
Williams had reached 36 off 28 balls when he found a top edge and was caught by Sarfraz Ahmed off Wahab Riaz.
Chigumbura was on 95 and brought up his ton in style with a six before striking 16 more runs in the 44th over.
That moved Chigumbura to 117 and Zimbabwe needed a highly unlikely 84 from 36.
Their chances lessened when Chigumbura was bowled by Wahab Riaz in the next over and Pakistan sealed victory.