北宋开封祥符(今河南开封)人,字士衡。出身将家,善弓马。后第进士,历知边州。宝元间,为鹿延、环庆路副都总管,擢步军副都指挥使。康定元年(1040),西夏围延州(今陕西延安),他奉召往援,被敌军围于三川口(今陕西延安西北),力战被俘。后卒于兴州(今宁夏银川)。