山川形勢,可以伏兵及出入之所。高麗、合兵為陳,長四十里。江夏王道宗曰:“高麗傾國以拒王師,平壤之守必弱,願假臣精卒五千,覆其本根,則數十萬之眾可不戰而降。”上不應。遣使紿延壽曰:“我以爾國強臣弒其主,故來問罪;至於交戰,非吾本心。入爾境,芻慄不給,故取爾數城,俟爾國修臣禮,則所失必復矣。”延壽信之,不復裝置。
太宗召集全體將領詢問破敵計謀,長孫無忌答道:“我聽說臨敵將要戰鬥時,必要先觀察一下士兵的情緒。我剛才經過各處營房,看見士兵們聽說高麗兵到了,都拔刀扎旗,喜形於色,此乃必勝計程車兵。陛下年輕的時候,親自指揮戰陣,當年大唐凡是出奇制勝打敗對方,都是陛下上呈高祖的計謀,眾位將領只是按著預定謀略行事。今天這一仗,還望陛下指示。”太宗笑著說:“諸位這樣謙讓,朕當為你們謀劃。”於是和長孫無忌等人帶領幾百騎兵登高眺望,觀察地形,看好可以埋伏兵力以及出入的地點。高麗、合兵為戰陣,長四十里。江夏王李道宗說:“高麗傾盡本國的兵力來抗拒我大唐軍隊,平壤的守軍必然虛弱,希望能給我五千精兵,直搗其京城,則幾十萬的兵馬可以不戰而降。”太宗沒有答允。派使者欺哄高延壽說:“我因為你們國的強臣殺死你們的國王,所以前來興師問罪;至於兩軍交戰,並非我的本意。但進入你們的境內,糧食供應不上,所以才攻下了幾座城,等到你們重修臣國的禮節,就將那幾座城歸還。”延壽相信了太宗說過的話,不再防備。
上夜召文武計事,命李世將步騎萬五千陳於西嶺;長孫無忌將精兵萬一千為奇兵,自山北出於狹谷以衝其後;上自將步騎四千,挾鼓角,偃旗幟,登北山上;敕諸軍聞鼓角齊出奮擊。因命有司張受降幕於朝堂之側。戊午,延壽等獨見李世布陳,勒兵欲戰。上望見無忌軍塵起,命作鼓角,舉旗幟,諸軍鼓譟並進,延壽等大懼,欲分御之,而其陳已亂。會有雷電,龍門人薛仁貴著奇服,大呼陷陳,所向無敵;高麗兵披靡,大軍乘之,高麗兵大潰,斬首二萬餘級。上望見仁貴,召拜遊擊將軍。仁貴,安都之六世孫,名禮,以字行。
太宗當夜召集文武大臣商議戰事,命令李世率領一萬五千名步騎兵在西嶺佈陣;長孫無忌率領一萬一千名精銳士兵做為奇兵,從山的北面穿越峽谷以衝擊高麗軍隊的後尾;太宗親自帶領四千步騎兵,挾帶鼓和號角,放倒旗幟,登上北山;又敕令各路軍聽見鼓和號角聲一齊出兵進擊。又命有關部門在朝堂邊上大張接受投降的帷幕。戊午(二十二日),延壽等人只見李世在佈陣,便勒令士兵欲迎戰。太宗望見長孫無忌的部隊塵土飛揚,便令擂鼓、吹號角,高舉大旗,各路兵馬鼓譟吶喊著一同進攻,高延壽等大為驚慌,想要分兵幾路擊退唐軍,然而高麗軍的陣形已經亂了。正趕上天降大雨,雷電交加,龍門人薛仁貴身穿奇異服裝,大聲呼喊著衝鋒陷陣,所向無敵。高麗士兵紛紛逃竄,唐朝大軍乘勝追擊,高麗兵大潰敗,二萬多人被殺。太宗看見薛仁貴,便召見他並拜為遊擊將軍。仁貴是薛安都的六世孫,名禮,以字稱呼。
延壽等將餘眾依山自固,上命諸軍圍之,長孫無忌悉撤橋樑,斷其歸路。己未,延壽、惠真帥其眾三萬六千八百人請降,入軍門,膝行而前,拜伏請命。上語之曰:“東夷少年,跳梁海曲,至於摧堅決勝,故當不及老人,自今復敢與天子戰乎?”皆伏地不能對。上簡耨薩以下酋長三千五百人,授以戎秩,遷之內地,餘皆縱之,使還平壤;皆雙舉手以顙頓地,歡呼聞數十里外。收三千三百人,悉坑之,獲馬五萬匹,牛五萬頭,鐵甲萬領,他器械稱是。高麗舉國大駭,後黃城、銀城皆自拔遁去,數百里無復人煙。
高延壽等人帶領殘餘士兵依山固守,太宗命令各路兵馬合圍,長孫無忌將所有橋樑撤掉,以斷絕其歸路。己未(二十三日),延壽、惠真率領高麗士兵三萬六千八百人請求投降,走到軍門,跪下用膝蓋前行,磕頭請罪。太宗對他們說:“東夷少年,可以在僻壤海隅橫行,至於摧毀堅固堡壘決戰取勝,肯定趕不上一位老年人,今後還敢與大唐天子交戰嗎?”延壽等人都趴在地上不敢答話。太宗挑出耨薩以下酋長三千五百人,給他們軍服職位,將他們遷居內地,其餘將士都放了,讓他們返回平壤;眾人都高舉雙手以頭撞地,歡呼聲聞幾十裡外。太宗將被俘的三千三百名士兵全部活埋,總共獲得五萬匹馬,五萬頭牛,一萬領鐵甲,各種器械上萬。高麗全國震驚,後黃城、銀城百姓都空城逃走,幾百裡內不再有人煙。
上驛書報太子,仍與高士廉等書曰:“朕為將如此,何如?”更名