唐初,北方东突厥正处于鼎盛时期,颉利可汗多次南下侵扰唐境,后与唐议和退兵。李世民即帝位,是为唐太宗。颉利可汗又乘机率骑10万攻至西安城西,因见唐军有备,始退。面对东突厥的威胁,唐太宗励精图治,发展生产,练兵习武,准备反击。
贞观元年(627年),东突厥发生内乱,薛延陀部脱离颉利,东突厥的突利可汗降唐,颉利孤立,遂于贞观三年(629)八月向唐称臣。唐太宗先后消灭了依附东突厥的苑君障和梁师都,占领了恒安(今山西大同东北)、朔方(今陕西靖边东北)两个反击东突厥的军事要地。
年底,唐太宗为了消除北方威胁,命李靖率李世责力、柴绍、李道宗、卫孝节、薛万彻等统兵10万余,反击东突厥。
贞观四年(630年)正月,李靖率3000精骑从白马邑(今山西朔县)出发,屯恶阳岭(今山西平鲁西北),乘夜袭占定襄(今和林格尔西北)。
颉利未料唐军突至,率众北撤。李世责力率军自云中出兵,在白道大败突厥军。颉利搜集残部退屯铁山(今内蒙古阴山北),准备待草青马肥之时退往漠北,遂行缓兵计,请求归附。太宗亦派唐俭等前去慰抚。李靖与李责力等在白道会师,虑其逃往漠北难歼,决定乘其不备,以精骑袭之。
颉利见唐使来,大喜,以为安然无事。二月初,李靖率精骑万人,携20日粮,于夜间行军,进至距颉利牙帐7里时,始被发觉。颉利仓皇逃走,突厥军大溃,被歼万余,俘10万余。颉利率残部退至碛口(今内蒙古二连浩特西南),又遭李责力军堵截,其大酋长皆率众5万投降。颉利逃奔灵州(今宁夏灵武西南),后被俘送京。