唐幽州(治今北京西南)人,祖先本为渤海人。贞元中,任金吾将军,因救宁州(今甘肃宁县)破吐蕃兵,封渤海郡王。剑南西川节度使刘辟叛乱时,受宰相杜黄裳推荐,领兵平蜀,擒辟。入成都时,秋毫无犯,市不易肆。因功封检校司空、西川节度副大使、南平郡王。后加同中书门下平章事、分宁庆节度使,为京西诸军都统。