进攻安市城
车驾从辽东城出发,到达安市城外。高句丽北部耨萨延寿、惠真率高句丽、靺鞨兵十五万来救安市城。延寿率军到达距离安市城四十里的地方。唐太宗命令阿史那社尔率一千突厥骑兵去诱敌,刚交战就假装退走。高句丽军争相前进,到达安市城东南边八里的地方,依山列阵。唐太宗亲自与长孙无忌等人以及数百骑兵到高处观察山川形势,可以伏兵以及出入的地方。
唐太宗命令李世勣率军队一万五千设阵于西岭,长孙无忌率精兵一万一千为奇兵,从山北出狭谷去攻击敌人的后方。唐太宗亲自率领军队四千,挟鼓角,偃旗帜,登北山上,命令各军听到鼓角声就一起出击奋力进攻。延寿看到李世勣布阵,结阵要作战。唐太宗望见长孙无忌军尘起,命令作鼓角,举旗帜,各路军队鼓噪并进,延寿等人大惧,想分兵抵御。唐将薛仁贵大喊的冲入高句丽军阵,所向无敌。唐军进攻,高句丽军大溃。唐军斩首两万多级。
延寿等人率领剩余的军队依山自固。唐太宗命令诸军包围之。长孙无忌撤了桥梁,断了高句丽军的归路。延寿、惠真率三万六千八百人投降,入军门,膝行而前,拜伏请命。唐太宗选出耨萨及以下酋长三千五百人,迁往内地,其他的都释放,让他们回平壤,他们都举起双手以头顿地,欢呼声传到数十里之外。此外,这一战还缴获马五万匹,牛五万头,铁甲一万多领,以及其他大量兵器。高句丽全国都非常震惊害怕,后黄城、银城的高句丽人都自己弃城逃走,数百里没有人烟。
九月,唐军开始围攻安市城。由于守军殊死抵抗,使唐军未能攻克。时近深秋,唐太宗因为当地变冷早、草枯水冻、士马难以久留、而且粮食将尽,所以班师还朝。
唐太宗是从容班师。班师时唐太宗还耀兵于安市城下,安市城的人皆屏迹不出,安市城主登城拜辞,唐太宗赞赏安市城主的坚守与忠诚,赐给安市城主缣百匹。之后的返回路上,唐太宗听说太子来了,为了尽快见到太子,唐太宗还骑马奔驰,这种情况下骑马奔驰,由此可见,在征高句丽以及班师过程中,唐太宗显然没有受伤。
结果
唐太宗因为没有攻灭高句丽而认为没有成功,而后悔,但是唐军的战果远大于损失。此次唐太宗征高句丽,攻占玄菟、横山、盖牟、磨米、辽东、白岩、卑沙、麦谷、银山、后黄十座城,徙辽、盖、岩三州户口七万人到中国,新城、建安、驻跸三大战,消灭大量高句丽军队,斩获高句丽首级达到四万余级(通常杀敌数远多于斩首数,例如平壤之战明军斩首就800百、但是小西第一军损失却超过1万),唐军士兵死了接近两千人,马匹死了八千匹。唐太宗亲征高句丽,战果远大于损失。
唐太宗回朝后,群臣建议对高句丽派偏师进袭骚扰,使其国人疲于应付,耽误农时,几年后即可使高句丽因粮荒而土崩瓦解,太宗采取了这一建议。
以后,唐军采取了对高句丽发动骚扰性攻击的策略,共有以下几次:贞观二十一年(647年),太宗命牛进达、李勣、李海岸率军从水陆两路进扰高句丽。李勣率军渡过辽水,途经南苏等数座城,高句丽兵多背靠城墙拼战,李勣将他们打败,并焚烧其外城后回师。牛进达、李海岸率军进入高句丽境内,经历一百多次战斗,战无不胜,又攻克石城。进军到积利城下,高丽兵一万多人出城迎战,李海岸将其击败,斩首二千级(通常杀敌数远多于斩首数)。
十二月,高句丽王让他的儿子莫离支任武入朝谢罪。贞观二十二年(648年)古神感率唐军渡海攻打高句丽,遇到高句丽军步骑5000,唐军在易山击破了他们。当晚,1万多高句丽军袭击古神感的船,再次被古神感击败。薛万彻率唐军渡过鸭渌,到达泊灼城,高句丽人害怕,放弃邑居而逃跑,大酋所夫孙抵抗,薛万彻击斩所夫孙,又击破3万高句丽援军。百济与新罗也参与进了唐与高句丽的战争,百济攻破的新罗13座城。