Mahela Jayawardene caught Tinashe Panyangara at deep mid-on in Sanath Jayasuriya's first over to complete Zimbabwe's rout for 102 in the second innings 15 minutes before tea on the third day.
Zimbabwe scored 199 in the first, and Sri Lanka finished its reply of 541 an hour into Saturday's play at Harare Sports Club. The total was set up by captain Marvan Atapattu's 170 and Jayasuriya's 157.
Zimbabwe, which has never beaten Sri Lanka in 14 meetings, surpassed its previous heaviest defeat by an innings and 219 runs against South Africa in November 1999 at the same ground. Off-spinner Muralitharan began the day tied for the all-time Test wickets record of 519 with West Indies paceman Courtney Walsh, who retired in 2001, and had to wait until his eighth over for his 520th.
With his last ball of the eighth, he induced Mpulelo Nkala on 24 to hole out to Jayawardene at silly mid-off.
"I was quite nervous and tense out there. It took me quite a while to get it," Muralitharan said.
He ended a 45-run rescue mission by Nkala and Alester Maregwede, who came together at 18 for five, then made Maregwede his 521st victim with a caught-and-bowl from the first ball of his ninth over, setting up a hat-trick.
But Muralitharan had to leave the field to address a finger he split in making the catch, though he returned in time to celebrate his team's victory. He took two for 37, and eight for 82 in the match.
Fast bowler Nuwan Zoysa was mainly responsible for Zimbabwe's capitulation when he helped reduce the home side to 18-5 with 4-4 in five overs.
Zoysa would finish with five for 20 for his first five-wicket bag in Tests.
A last-wicket fling by Panyangara and Douglas Hondo delayed the inevitable, with Panyangara hitting a six off Zoysa to take Zimbabwe past 100 before he was last man out.
Zoysa and Muralitharan frustrated Zimbabwe in the morning when they came together at 496for nine, after Blessing Mahwire removed overnight batsmen Chaminda Vaas (28) and Farveez Maharoof (40).
Muralitharan and Zoysa and pushed Sri Lanka over 500, with Muralitharan especially in a happy mood in hitting 26 in 29 balls, including a six.
He was finally fooled by a slower ball from Panyangara (3-101). Zoysa was left unbeaten on 28, then got stuck into Zimbabwe's batsmen.
The second and final Test starts on Friday in Bulawayo.
Zimbabwe 2nd Innings: S Matsikenyere c Mahela Jayawardene b Zoysa 11 B Taylor c Muralitharan b Vaas 4 D Ebrahim c Prasanna Jaywardene b Zoysa 2 T Taibu lbw b Zoysa 0 E Chigumbura c Prasanna Jaywardene b Zoysa 0 A Maregwede c&b Muralitharan 22 M Nkala c Mahela Jayawardene b Murlaitharan 24 P Utseya b Maharoof 0 B Mahwire c Mahela Jaywardene b Zoysa 2 D Hondo not out 15 T Panyangara c Mahela Jayawardene b Jayasuriya 18 Extras: (2lb, 2nb) 4 Total: (all out, 32 overs) 102 Fall of wickets: 1-13, 2-15, 3-17, 4-17, 5-18, 6-63, 7-64, 8-64, 9-72. Bowling: Vaas 8-2-24-1, Zoysa 9.5-2-20-5, Muralitharan 9.1-1-37-2, Maharoof 4-0-18-1, Jayasuriya 1-0-1-1.