In reply to Worcestershire's mammoth 650 for seven declared, Essex were all out for 283 in the first innings and following on, they put on 486 before losing all their wickets.
Worcestershire cruised to 121 for one to carve out a nine-wicket win that also helped the side leapfrog Essex in the Championship Division Two table.
Zaheer had claimed all nine Essex wickets in the first innings and was eyeing for his 10th victim but wicketkeeper Steven Davies dropped Essex batsman Darren Gough and the Indian left-arm seamer fell tantalisingly short of a perfect 10. Matt Mason later claimed Gough's wicket.
In the second innings, Zaheer came up with a two-wicket burst. He first caught Ronnie Irani (97) off his own bowling and six runs later, trapped Ryan Doeschate (0) leg before to complete his 11-wicket haul in the match.
Among the Worcestershire batsmen, Phil Jaques added an unbeaten 60 to his first innings double century to help the side reach the target.
Brief score: Worcestershire 650 for 7 declared&121 for 1 Essex 283 all out&486 all out