北宋永宁军博野(今河北蠡县)人。历仕后汉、后周。建隆初,为西山巡检,与曹彬、王全斌攻入北汉境,俘获数千人。开宝二年(969),以行营前军马军都指挥使从太祖攻北汉。太平兴国四年(979),太宗平北汉,为都部署,扼守石岭关(今山西阳曲东北),败契丹援军。与护军田钦祚不协,不堪其侵凌,自经死。御军严毅,控扼西山十余年,使宋无北顾之忧。