河中府，担任给事中。后知永兴军。皇祐末年，传闻蜀中将乱，仁宗再命程戡知成都府。至和元年（1054年）召拜参知政事，严禁蜀人妖言诬民。嘉祐元年（1056年），避宰相文彦博之亲，改任枢密副使。嘉祐五年（1060年），与枢密使宋庠不合，被降职，以宣徽南院使、鄜延路经略安抚使、判延州。因为交结宦官，多次被弹劾。宋英宗即位，加安武军节度使，留再任。治平三年（1066年）召回东京开封府，在途中去世，赠太尉，谥号康穆。