After bowling out Derbyshire for 338, Worcestershire lost an early wicket in Stephen Moore and were six for one in 2.1 overs.
Zaheer's figures read 22.1-6-60-6 and he was clearly the pick of the Worcestershire bowlers.
The Baroda seamer had earned the breakthrough claiming opener Stephen Stubbings (8) and then next man in Chris Taylor (11) but Michael Di Venuto (56) then put up some resistance before Zaheer removed him as his third victim.
Down the order, Derbyshire captain Graeme Welch (94) led from the front and got able support from James Pipe (57) but Zaheer plotted their downfall and also claimed Steffan Jones (0) to complete his six-wicket haul.
In another Division Two match, Glamorgan were 110 for 2 in 38.4 overs agains Dinesh Mongia's Leicestershire.
Mongia had slammed a 298-ball 161 with 15 fours and a six as Leicestershire were all out for 525 in 167.2 overs.