唐郑州荥泽(今河南郑州西北)人。北周时袭父爵为开封县公,时年九岁。隋改封武德郡公,任沂州刺史,转鲁郡太守。母崔氏常于阁内听他理事,得当则喜,不得当则不与之言。他由此励己为清吏。后从炀帝至江都。炀帝死,从宇文化及北还,拒唐军负箭伤,旋为窦建德所俘。建德责其为弑君之贼宇文化及力战,不加礼遇,乃投唐。高祖授为检校内史侍郎、太子左庶子。后历礼部、刑部尚书。贞观初,出为歧州、江州刺史。