任左骁卫鹰扬府鹰扬郎将。大业十一年（615年），担任行军总管，领鹰扬、鹰击等九十七人，号称十万，防御突厥。大业十二年（616年），和屈突通攻打胡贼有功，任正议大夫、左骁骑武牙郎将。义宁元年（617年），归顺李渊，从军讨伐薛举。义宁二年（618年），讨伐王世充，任右元帅左一总管司马，武德元年（618年），唐朝建立，转任上开府，武德二年（619年），任尚乘奉御。武德三年（620年）改任尚衣奉御。武德五年（622年），任汴州都督府司马。武德九年（626年），封为南宾县开国男。唐太宗贞观二年（628年），任宁远将军