吐穀渾,是中國境內的一個古老的少數民族。唐初,高祖派李安遠“使於吐穀渾,與敦和好,於是吐穀渾主伏允請與中國互市”。東突厥敗後,吐穀渾漸趨強大,多次侵入河西走廊,威脅唐與西域的交通與經濟交流。
貞觀八年,可汗伏允拘留唐朝鴻臚丞趙德楷,太宗“頻遣使宣渝,使者十餘返,竟無悛心。”於是下詔大舉兵討之。同年十二月,唐太宗任命李靖為西海道行軍大總管,統率侯君集、李道宗諸軍出擊。次年閏四月,李道宗於庫山擊敗吐穀渾的精騎。伏允為阻追兵,沿途悉燒野草,輕騎逃往沙磧,為唐軍乘勝追擊製造了不少困難,以致引起了唐軍內部的爭議。多數將領認為途無野草,馬易饑疲,騎兵不可深入;不如撤軍鄯州,以待馬肥相機進攻。以侯君集為代表的另一看法認為,吐穀渾敗於庫山,如“鼠逃鳥散,取之易於拾芥”,不可中途停頓,必須乘勝追擊, “此而不乘,後必悔之”。侯君集提出了“以騎兵掩不備”的作戰方案,因與李靖擅長的戰術思想不謀而合,於是李靖決定采取侯君集的建議,兵舉兩路,分進合擊。
李靖指揮的北路軍勢如破竹,一敗吐穀渾於曼頭山,再敗其牛心堆,三敗其赤水源。其中尤以赤水源之戰最為激烈。李靖部將薛萬均被吐穀渾大軍圍困,薛萬徹前來解圍,兄弟倆浴血奮戰,受傷下馬,繼又步戰,從騎死傷過半,被困重圍。幸好,契芯何力及時援至,薛氏兄弟突圍奮擊,反敗為勝, “虜披靡去”。李靖另一部將李大亮在蜀渾山大敗吐穀渾,俘其名王二十人。
侯君集指揮的南路軍,穿過荒無人煙的不毛之地,忍受了“人吃冰,馬瞰雪”的惡劣氣候。五月追及伏允於烏海(今青海東境),破其主力,俘其名王。
李靖所部大獲全勝後,統率諸軍,窮追伏允於且未(今新疆東南部)。伏允逃奔突倫川,打算轉向和闐。契芯何力說服薛萬均合軍複追伏允,大軍進入沙磧,襲破伏允牙帳,斬首數千級,獲雜畜二十餘萬,妻子被俘,伏允狼狽逃竄,眾叛親離,為左右所殺,其子慕容順被部眾立為可汗,斬天柱王降歸於唐。至此,李靖勝利地結束了對吐穀渾的戰爭,從而解除了吐穀渾對河西走廊的威脅。
唐太宗對歸附的吐穀渾,仍讓其居故地,立慕容順為主,又派遣李大亮率幾千精兵,聲援慕容順,作為防範日益強大的吐蕃的屏障。