督薛萬徹為暢武道行軍總管,任城郡王李道宗為大同道行軍總管,幽州都督衛孝節為恆安道行軍總管,以李靖為總帥,麾兵十餘萬北伐突厥,問罪的藉口則是突厥人援救了梁師都,破壞了兩國的和議。此次北伐諸將可謂是不折不扣的超豪華陣容,初唐頂級名將中也就李世民沒有親自上陣,其餘諸將基本都是唐軍將領中的精華。
而東*突厥頡利可汗也知道唐軍遲早要殺過來,因此對唐朝大軍的動向十分警惕。可是出乎頡利意料之外的是李靖身為統帥居然只帶三千人馬就從馬邑潛至惡陽嶺(今內蒙古和林格爾),然後趁夜幕降臨之際悍然突襲定襄城(即大利城,在今內蒙古和林格爾西北 20 裡處),給了突厥人一個新年的“驚喜”。這一下把突厥人打得措手不及,防衛森嚴的突厥大本營被唐軍一鼓而下,在幾十倍突厥人的眼皮子底下將定襄城佔領。唐太宗聽到這個訊息不但立刻加封李靖為代國公,並讚歎道:“李陵以步卒五千絕漠,然卒降匈奴,其功尚得書竹帛。靖以騎三千,蹀血虜庭,遂取定襄,古未有輩,足報吾渭水之恥矣!”
僅僅這一小戰,李靖的戰略戰術大師的身份便昭顯無遺,首先正月這個時間天寒地凍,正是草枯馬瘦的時節,突厥人的戰馬均以牧草為食,而這個天氣最多隻有之前預備的乾草能夠作為食料,馬力削弱得很快。而中原馬匹則是用大豆麥子等餵食,天氣如何對馬匹的食物來源影響不大。馬匹對突厥人的重要性是毋庸置疑的,削弱了突厥人的馬匹等於砍掉了突厥人最為強力的武器,因此天時上唐軍就佔據了優勢。李靖這三千人帶得也非常有學問,首先為了潛行匿蹤考慮,人帶多了必然會暴露身份,因此只能帶三千人偷襲。李淵曾經率兩千人改裝冒充突厥人,獲得過很大的成功,此次李靖想必也使用了類似的方法摸到了惡陽嶺實施偷襲。當然少了也不行,李靖孤軍犯險其實完全是一著置之死地而後生的險棋,他的原定計劃其實是偷襲定襄得手之後以三千人死守定襄城,利用突厥人因為唐軍兵少而輕視的心理把突厥人的主力牢牢地吸引在定襄,然後唐軍主力在外合圍,一舉殲滅突厥人,三千人馬就是保證了最低限度的戰鬥力。
李靖出征之前想必也做好了死戰到底的心理準備才能如此堅決地突襲定襄,頡利可汗憑著以往的經驗認為,李靖決不會是來送死的,因此做出了李靖身後必然有唐軍主力的推論,於是連忙率部北撤至磧口(今內蒙古呼和浩特北與沙漠交界處)。李靖一看計劃有變,當即立斷改變作戰方案,一面率部於其後尾隨,一面派遣了大批間諜對頡利部眾進行離間,頡利國內本已不穩,這一招果然見效,頡利親信康蘇密等立即挾持隋場帝蕭皇后及其孫楊政道前來歸降。此時李世勣率領的唐軍主力亦殺到,頡利可汗雖然也發現唐軍主力有十萬,但是也不想就這樣一逃再逃,於是大膽率主力與唐軍會戰於白道(今內蒙古呼和浩特北),唐軍奮戰之下突厥慘敗,頡利只能率殘部退守陰山。李靖則率驍騎窮追不捨,二月八日,李靖與頡利大戰於陰山腳下,頡利又敗,只得北逃至鐵山(今內蒙古固陽北)。
此時頡利知道再這樣打下去肯定要完蛋,可是突厥馬匹瘦弱,比速度一定會吃虧,根本逃不了多遠。現在唯一的活路就是逃往漠北,可是沿途荒無人煙皆是沙漠,憑突厥現在的狀態根本不可能逃出生天。於是頡利立刻派使者執失思力入朝謝罪,表示願意舉國內附,親自入朝。這個做法自然是緩兵之計,使者從鐵山到長安相距千里,一來一回就要月餘,唐朝使者來了之後再想法拖延一段時間,很容易就能將時間拖至四月,而中國農曆的四月基本相當於現代歷的六月,此時草青馬肥,天氣回暖,突厥人便能恢復長途跋涉的能力,逃往漠北。此時頡利尚有數萬死忠戰士、十餘萬部眾,加以時日捲土重來並不是難事。頡利的算盤打得挺好,中國曆朝歷代的皇帝最容易在這上面犯迷糊,李世民雖然非常精明,但是頡利願意親身入朝的說辭也使李世民相信了頡利是真心投降,於是派了鴻臚卿唐儉、將軍安修仁為使者至頡利處慰撫,又派李靖迎接突厥部眾歸降。
可惜頡利這個算盤能瞞得過別人卻瞞不過李靖,正所謂聰明反被聰明誤,李靖與李世勣一合計,覺得朝廷派使者來受降正是個好機會,正好將計就計把突厥徹底打垮。可是這事好說不好做,朝廷既然已經同意頡利的請降,下面將領再去攻打等於是抗旨,一般將領決沒有這種膽量。因此當時李靖的副將張公瑾就表示了反對,認為詔書已經許降,使者又在突厥大營中,怎麼能貿然就去攻打呢?李靖卻當即立斷地說:“韓信攻滅齊國就是用這個方法,比起消滅突