内侍押班。吐蕃围攻茂州，他奉诏往援，解围，进升为昭宣使、入内副都知。宋神宗元丰四年（1081年），宋军五路进攻西夏，他佥书泾原路经略司事。因会师灵州失期，士兵伤亡惨重，改任金州观察使，贬秩二等，提举崇福宫。与李宪、宋用臣、石得一被旧党视为“四凶”。宋哲宗绍圣初年，复为嘉州团练使，七十一岁时卒。