王世充对程咬金十分优待,但程咬金和秦叔宝都非常讨厌王世充的为人,他们暗自寻找机会,准备另投明主。武德二年(619年)闰二月,王世充率军与唐军李世民部战于九曲,程咬金列阵迎战。忽然与秦叔宝等人在马上向王世充拱手道:“蒙受公的接待,很想报恩。但是公性情爱猜疑,身边又多小人,不是我们托身的地方,现在恭敬辞别!”然后与左右数十人跃马奔向唐军。王世充因惧怕程咬金等人的勇武,竟不敢追赶。归唐之后程咬金和秦叔宝在李世民的麾下听令,跟随李世民南征北战,东征西讨,打败了宋金刚,活捉了窦建德,降服了王世充,并担任左一马军总管。每次交战他都身先士卒,战功卓着,被封为宿国公。
最后李氏终于扫平了各路势力,统一了全国。在扫荡群雄的过程中李世民战功显赫,威望如日中天,又形成了以秦王府谋士和勇将为核心的实力雄厚的政治集团。这严重威胁到了太子李建成的皇储地位。由于程咬金是李世民的骨干,李建成欲除之而后快。武德七年,李建成为了剪除李世民的左右羽翼,向唐高祖进谗把程咬金外调为康州刺史。程咬金坚决留在李世民的身边。武德九年(626年)六月,李建成和李元吉在夜宴的酒水中下毒,致使李世民饮酒后毒性发作,吐血数升,险些丢了性命。李世民意识到朝廷里的形势对自己十分不利,便决定先发制人,在玄武门伏击李建成和李元吉,夺取皇位。
程咬金参与了玄武门兵变的全过程,兵变后,程咬金拜授太子右卫率,升任右武卫大将军。贞观年间,程咬金历任泸州都督,左领军大将军,与长孙无忌等人世袭刺史,改封卢国公,授普州刺史。