Abstract The co-pyrolysis (at 300°C and 600°C) of municipal sewage sludge (SS) with zero-valent iron (Fe0: 1.5% and 3%) was investigated to reduce the toxicity of arsenic (As) and zinc (Zn) in SS. The BCR sequential extraction method, desorption kinetic analysis, and material characterization techniques (Fourier transform infrared spectroscopy, field-emission scanning electron microscopy, X-ray diffraction) were used to evaluate the effects of the treatments on Zn and As behavior. The results showed that co-pyrolysis significantly reduced the acid-soluble fraction (18–43% for Zn; 83–95% for As) and mobility factor (45–85% for Zn; 86–96% for As) of Zn and As compared to untreated SS. Desorption experiments indicated a significant reduction in Zn and As release in treated samples, particularly in the co-pyrolysis sample at 600°C and Fe0 3% (67% for Zn; 88% for As) in comparison with untreated SS. Co-pyrolysis of Fe0 and SS led to the formation of new functional groups (Si–O, aromatic), a more porous surface morphology, and highly stable chemical crystals (ferric arsenate, zinc arsenide), which played a crucial role in Zn and As stabilization. The findings of this study suggest that co-pyrolysis is a promising approach for mitigating As and Zn toxicity in SS. However, additional field testing with plant-based systems is necessary for confirmation.