唐太原(今山西太原西南)人。祖恕为扬州仓曹参军,遂徙居扬州。以荫为太子正字,擢贤良方正科。累迁殿中侍御史。因通过郑注求见宦官王守澄,被中丞所劾,出为江陵少尹。大中时,为晋州剌史,救灾多所全活。大中十二年(858),任安南都护,修治壕栅,镇压土民暴动。咸通元年(860),任浙东观察使,镇压裘甫起义。三年,调任武宁节度使,以计尽杀徐州“银刀军”乱兵。终左金吾大将军。