However, it was Kabir Ali's seven-wicket-haul that destroyed Derbyshire, who were all out for a meagre 149 in the second innings.
Earlier, deciding to bat first, Derbyshire had scored 338 in their first innings before bowling out Worcestershire for 278.
Chasing a victory target of 209, Worcestershire reached 35 for no loss in just 4.1 overs.
Zaheer, who had claimed six wickets conceding 60 runs in his 22.1 overs, ran through the Derbyshire middle order, removing Chris Taylor, Travis Birt and Ant Botha to complete his nine-wicket haul.
Zaheer's second innings figures read 16.2-7-58-3. Earlier, with the bat, the Indian played a run-a-ball knock of 12 with the help of three boundaries.
Kabir Ali was in ominous form with the ball and he scalped seven wickets, conceding 43 runs in his 17.4 overs. Like Zaheer, he also recorded his nine-wicket haul in the match.
Brief score: Derbyshire : 338 all out and 149 all out Worcestershire : 278 all out and 35 for 0 (4.1 overs).