With Zimbabwe needing to bat solidly in its second innings to have a chance at a draw in its first test in more than a year, Lakmal removed Prince Masvaure (17), Brian Mudzinganyama (16) and Craig Ervine (7) before lunch and then Brendan Taylor in the second session.
Zimbabwe needed 127 runs on the last day to make Sri Lanka bat again, but Lakmal was well-supported by fellow pacer Lahiru Kumara (3-32), spinner Lasith Embuldeniya (2-74) and seamer Kasun Rajitha (1-23).
Both Lakmal and Embuldeniya finished the test with seven-wicket hauls while Kumara totaled five.
Zimbabwe was eventually skittled out for 170 leaving Sri Lanka the simple task of getting just 14 runs to win.
Openers Oshada Fernando (4) and captain Dimuth Karunaratne (10) then eased Sri Lanka to victory ahead of the second match starting next Monday.
"I'm going to be totally honest, I thought it was an average wicket," said Sri Lanka coach Mickey Arthur. "It didn't encourage quick bowling, it didn't encourage spin. It was tough to score. It was easy to stay, but when you tried to accelerate, that's when you got yourself into trouble."
Man-of-the-match Angelo Mathews was the bedrock of Sri Lanka's first innings with a maiden double century on day four on Wednesday. The 32-year-old former captain faced 468 balls for his undefeated 200 in a knock in which he frustrated Zimbabwe's bowling unit for large parts with solid defense and audacious stroke-play.
A key partnership in Sri Lanka's first innings was the 136-run for the sixth wicket between Mathews and wicketkeeper Niroshan Dickwella (63).
Debutant pacer Victor Nyauchi was the pick of the bowlers for Zimbabwe with figures of 3-69.
"There are a lot of youngsters that were put in this game and I'm really happy that they've raised their hands up, they've performed," Zimbabwe's coach Lalchand Rajput commented. "I wouldn't say they've performed exceptionally. But yes, they've performed to their potential and I'm sure many more will come."