Malik, playing his first one-dayer after two years, notched up a 76-ball 112 with 12 fours and two sixes to steer Pakistan to 375-3 -- their highest against Zimbabwe -- before restricting the tourists to 334-5 in 50 overs at Gaddafi Stadium.
Zimbabwe tried their valiant best with skipper Elton Chigumbura hitting a rapid 95-ball 117 but the mounting asking rate proved too much in the end.
Chigumbura added 124 for the third wicket with Hamilton Masakadza (73) and another 74 for the fourth with Sean Williams (36).
Chigumbura was bowled in the 45th over by paceman Wahab Riaz who was the best Pakistan bowler with 3-47.
Chigumbura's previous best was 90 he made against South Africa at Bulawayo last year.
Earlier, Malik scored his first century since his three-figure knock against India at Centurion in September 2009.
Malik's hundred -- his first in 31 innings and since September 2009 -- came off 70 balls as Pakistan added 112 in the last 10 overs.
Malik, 33, was dismissed off the last delivery, caught in the covers off Tinashe Panyangara.
Malik had been part of a 201-run stand with Haris Sohail (89 not out), a new record for the third wicket against Zimbabwe beating the 145 runs which Javed Miandad and Amir Sohail put on at Hobart in 1992.
Zimbabwe are the first major team to tour Pakistan since terrorist attacks on the Sri Lankan team bus in March 2009 led to the suspension all international cricket in the country.
Massive security continued to be deployed at the stadium and for the teams, with 24,000 people watching the match.
Ali and Hafeez gave Pakistan early momentum as they batted solidly during their 26 over stand.
The next two matches will be played on Friday and Sunday -- also in Lahore.
