Due to the complex nature of sewage sludge (SS), how to control the emission of precursor pollutants during its pyrolysis remains a challenge. In this work, the evolution of N, S and C during SS pyrolysis was investigated and biochars were employed to regulate their distribution in the resulting products. The release of N-containing products followed a descending order of NH3>HCN>NO>NO2 and the biochar addition resulted in a reduction of 40.7-54.3% for these volatiles. The nitrile-N and pyrrolic-N species decreased, while the quaternary-N in residue increased significantly. The emission of S-containing products showed a descending order of COS>SO2>CH3SH>H2S>CS2 and the co-pyrolysis with biochar showed a reduction of 40.6-65.7% for these products. The relative contents of thiophene-S and sulfoxide-S species increased, while the content of sulfone-S decreased. Biochar incorporation also resulted in a reduction of 67.2% and 47.4% for CO and CO2, respectively. Both Raman and XPS analysis indicated an increase in the graphitization degree and a decrease in structural defects.