The home side, teetering on 180 for seven overnight, survived 13 overs before being bowled out for 233 as Sri Lanka won by 257 runs to compete a sweep of the two-match series.
Herath, standing in as captain for the injury-hit Sri Lankan side, finished with 13 wickets in the match as he fully exploited a turning surface to dominate the test with his spin.
Craig Ervine, the only home player to provide any significant resistance, was first out on Thursday, adding seven runs to his overnight 65 before a sharp catch from Dhananjaya de Silva at slip gave Herath his first wicket of the morning.
Carl Mumba departed for one run soon after and Chris Mpofu was the last wicket to fall, trapped leg before for a quick-fire 20.
Sri Lanka's victory proved a lot easier than their success in last week's first test when they almost ran out of overs before eventually dismissing Zimbabwe to win by 225 runs.
The two sides will next be joined by the West Indies for a triangular one-day international series in Zimbabwe, which starts in Harare on Monday.
Original source: Herath runs through Zim as Sri Lanka sweep series