京兆杜陵(今陕西西安东南)人。在北周起自卫公府礼曹参军。伐陈为所虏,由周武帝赎回。后使陈有功,迁少御伯下大夫,加上仪同。因安稽胡而拜汾州(今山西汾阳)刺史。隋文帝杨坚即位后征为兼散骑常侍,进位开府,赐爵安固县侯。发汾州胡北筑长城有功,拜石州(今山西离石)刺史。又为南宁州(今云南曲靖)刺史,甚有政绩。坐兄子伯仁事免官。数载后检校括州(今浙江丽水)事,破陶子定、罗慧方起事。改封义丰县侯。寻拜营州(今辽宁朝阳)总管,定边有功。仁寿年间,以女被纳为豫章王妃,征拜民部尚书。卒,年六十六。