唐太宗即位初期,雖然中原戰事基本結束,但西北邊境還很不安定,常常受到東突厥的騷擾。當時東突厥的首領是頡利可汗,他英勇善戰,曾經率領十多萬人馬,一直打到離唐朝首都長安(今陝西省西安市)隻有四十裏的渭水地區,唐太宗親自率兵趕到渭水邊上,跟他訂立盟約,他才退兵。

貞觀三年(629)冬天,北方遭遇重大雪災,東突厥損失慘重,大批牛羊被凍死,饑荒席卷了大漠以北的所有地區。為了彌補本族損失,頡利大肆侵略周邊部族,掠奪牲畜,引得各部族怨聲載道,紛紛起兵反抗。頡利派侄子突利前去鎮壓,不料大敗而歸。突利死裏逃生,回來之後,頡利不僅沒有安慰他,還將他責打一通,委屈不已的突利一怒之下就帶著兵馬投奔了唐朝。唐太宗盛情接待了突利,然後抓住東突厥深陷天災人禍這個千載難逢的好時機,任命大將李靖為總指揮,統率十多萬精兵北上,分六路進攻突厥。

於是,李靖帶著訓練有素的精兵強將冒雪北上,在朔州(今山西省朔州市)附近駐紮了下來。第二年正月的一天,李靖親自率領三千精銳騎兵連夜行軍,襲擊突厥營地。頡利毫無準備,嚇得麵色發白,手下的兵士也慌了手腳,他們一邊抓起兵器一邊害怕地說:“李靖率領幾千人就敢闖進我們的營地,肯定不是孤軍作戰,後麵肯定有大批的援軍,這次唐朝應該是發動全國的兵力過來了,我們可怎麼辦啊?”大家議論紛紛,都不敢衝到前麵迎戰,唐軍還沒發起正式攻擊,整個突厥軍就已經亂作一團。

李靖見突厥兵個個猶如驚弓之鳥,軍心已動,便派間諜混進突厥營地,一麵繼續恐嚇突厥士兵,一麵勸說頡利的心腹大將投降。一時之間,突厥部隊中必敗之言盛行,投降的將領也數不勝數。頡利可汗一看大事不妙,就趁亂偷偷逃跑了。李靖打了勝仗,先行回到長安報告了這個好消息,唐太宗聽了十分高興,說:“以前漢代的李陵帶五千士兵突襲匈奴,結果不幸被匈奴俘虜;現在你帶著三千騎兵深入敵軍,就能逼走頡利,穩定邊境,威震北方,這可是從古至今都非常罕見的盛事啊!”

正在這時,逃到陰山以北的頡利害怕唐軍繼續追擊,便派使者向唐太宗求和,還說要親自到長安朝見。唐太宗不知道頡利之言的虛實,於是一麵派唐儉到突厥安撫軍民,另一方麵又命令李靖再次帶兵北上,偵察頡利動靜。

李靖領兵到白道(今內蒙古呼和浩特市西北)和還沒回朝的李會師,兩個人商量對付頡利的辦法。李靖說:“頡利雖然打了敗仗,但是他手下還有不少人馬。如果這次放他跑掉,以後我們再想要抓住他,就很困難了。我們隻要選上一萬精兵,帶上二十天的幹糧,跟蹤襲擊,一定能活捉頡利。”李深表讚成,說:“頡利向陛下求和,隻是緩兵之計而已。等到春天水草豐茂了,他肯定還會回到漠北,卷土重來。當下,他看到唐儉將軍過來安撫軍民,一定以為陛下已經中了他的詭計,就會放鬆防備。我們正好趁機突襲,一舉將他拿下!”於是,兩支軍隊一起出發,當天晚上就抵達了陰山。