唐京兆万年(今陕西西安)人。高宗时,任肃州剌史、右武卫将军。武后临朝,为燕然道行军大总管,抵御突厥。永昌元年(689),任安息道行军大总管,进封扶阳郡公,督三十六总管攻吐蕃,败于弓月城(今新疆霍城西北)西的寅识迦河,被流放乡州(今广西容县西北)而死。