唐太宗征讨高句丽

背景

隋炀帝对高句丽的连年征战使得隋国力锐减，民心丧失，这是隋朝灭亡的主要原因之一。因此，618年，唐高祖建立唐朝后，就努力与荣留王修好，双方于622年交换战俘。624年，荣留王接受了唐的年号。唐高祖册封荣留王为辽东郡王、高句丽王。与此同时，唐册封百济武王为带方郡王、百济王，新罗真平王为乐浪郡王、新罗王。
626年，李世民在玄武门之变杀死了自己的长兄（皇太子李建成）和四弟（齐王李元吉），迫使唐高祖交出皇权并立他为新任皇太子。李世民随后继承皇位成为唐朝第二任皇帝唐太宗。在唐太宗在位的大多数时间里，唐与高句丽大致维持着友好的关系。唐太宗试图在朝鲜半岛的三个政权之中保持主导地位。626年，唐太宗登基不久就派朱子奢到朝鲜谴责朝鲜三国之间的相互争斗。631年，在得到高句丽荣留王的同意后，唐太宗派特使到高句丽重新安葬阵亡的隋兵。但唐太宗对于高句丽还是没有放弃征服策略。唐太宗李世民认为高句丽据有的“辽东”（当时的“辽东”的概念略同于汉朝四郡的范围，即中国东北辽河以东地区以及朝鲜半岛的北部）  为“旧中国之有”，而今“九瀛大定，唯此一隅”，决心将对高丽的征伐作为中国统一战争的最后部分。
641年，唐太宗派遣使者陈大德出访高句丽。陈大德在高句丽访问期间，遇到了许多在高句丽安顿了下来原隋朝兵将。回到长安后，陈大德将这一情况禀告了唐太宗。唐太宗于是萌生攻打高句丽的想法，但又很快打消了这一念头，说是为免使山东人劳累。
642年（贞观十六年），高句丽荣留王高建武和诸大臣合议打算诛杀暴力而凶残的渊盖苏文。渊盖苏文闻讯后，设下陷阱邀请诸大臣观看他的军队大阅兵，并设宴款待。在宴席上渊盖苏文杀死了荣留王的一百多位大臣，继而进宫弑杀了荣留王，并立其侄子高藏为王。渊盖苏文自封自己为“大莫离支”，控制高句丽军政大权进行摄政。唐朝得知这一消息后，亳州刺史裴庄曾建议攻打高句丽。但唐太宗却说他对荣留王的去世表示悲哀，但以乘国丧攻打高句丽并不合适。不过，643年唐太宗又开始考虑对高句丽动武，并想下令先让契丹和靺鞨偷袭高句丽。唐太宗的内兄长孙无忌对此表示反对，建议唐太宗先与高句丽假装为好，后趁其不备攻之。唐太宗接受了他的建议，并册封宝藏王为辽东郡王、高句丽王，授予“上柱国”的称号。但背后，双方都明白最终不免一战。高句丽花费了巨大人工物力，在沿唐边境修筑了高句丽长城，自夫余城（今吉林四平市以西）至渤海，长千余里，十六年修成。
643年（贞观十七年），新罗善德女王传书说百济联合高句丽攻打新罗，并请求唐援助。唐太宗于是派司农丞相里玄奖到高句丽下令高句丽和百济停止攻打新罗。相里玄奖到达高句丽都城平壤时，渊盖苏文正在与新罗交战。得知相里玄奖的到来，渊盖苏文返回到平壤会见他。不过，渊盖苏文拒绝了唐太宗的要求。相里玄奖回到长安后将此事禀告唐太宗后，唐太宗于是决意要攻打高句丽，大将李世𪟝也表示支持。尽管褚遂良反对，但唐太宗攻打高句丽的决心已定。

张俭征高句丽

新罗数次向唐太宗请援，644年（贞观十八年），唐太宗派阎立德到洪州（今江西南昌）、饶州（今江西鄱阳）和江州（今江西九江）筹建400艘军船，用以运输粮草，并派遣营州都督张俭、守左宗卫率高履行等率领幽州（今北京）、营州（今辽宁朝阳）两个都督府的兵马以及忠于唐的契丹、奚和靺鞨仆从军队，让其对高句丽进行探试性的攻击。张俭领军至辽西，因辽水正在汛期，水势大涨，唐军长期未能渡河。唐太宗将其召回洛阳询问后，见其对高句丽的山川地形极为熟悉，于是仍任命他为行军总管，兼领诸蕃部的骑兵，为大军前锋。

御驾亲征高句丽

渊盖苏文马上派特使到唐朝贡讲和，以避免双方战争的升级。不过唐太宗并没有接受高句丽的朝贡，反倒将来使拘留起来，指控他们背叛荣留王，与弑君者同谋。644年冬，唐太宗带着大多数官员和皇太子李治离开长安开始缓慢向唐与高句丽的边境进发。房玄龄和李大亮留守都城长安。李世民先是到了洛阳并在那又作了几个月的进一步准备。
大概在645年的新年，唐太宗下令以刑部尚书、郧国公张亮为平壤道行军大总管，左领军常何、泸州都督左难当为平壤道行军副总管，冉仁德、刘英行、张文干、庞孝泰、程名振等人为总管，率江、淮、岭、硖劲卒4万3千人，乘500艘战船（阎立德所造）从莱州出发，渡黄海向平壤进发。与此同时以英国公李世𪟝为辽东道行军大总管，礼部尚书江夏王李道宗为辽东道行军副总管，张士贵、张俭、执失思力、契苾何力、阿史那弥射、姜行本、麹智盛、吴黑闼、李元正为行军总管隶之，率步骑6万从陆地向辽东进军。同时下诏令契丹酋长于勾折、奚酋长苏支、新罗王金善德、百济王扶馀义慈等诸国君长领兵助战。
唐太宗对这场战争的胜利充满信心。他认为隋炀帝之所以没能战胜高丽的原因是隋炀帝对自己的人民过于残忍而高句丽则爱惜自己的人民。隋炀帝用要反叛的部队来打高句丽团结一心的军队，因此是不可能取胜的。现在这一切都已得到改变：首先，这次战争是大国打小国；其次，这场战争是正义之师讨伐叛逆之贼；第三，这场战争是组织有素的部队攻打另一个混乱的部队；第四，这场战争是精力充沛的部队攻打另一个疲惫不堪的部队；最后，这场战争是士气高昂的部队攻打另一个抱怨连天的部队。因此唐这次攻打高句丽是胜券在握。
645年（贞观十九年）春二月十二日，唐太宗率六军和长孙无忌等文武重臣开始离开洛阳前往高句丽。宋国公萧瑀被留下来看守洛阳。三月十七日到了定州（今河北保定）后，唐太宗让太子李治监国，并留在那负责部队的后勤任务。与李治一齐留守定州还有高士廉、刘洎、马周、张行成、高季辅。三月二十四日李世民带着长孙无忌、岑文本、杨师道、尉迟敬德、刘弘基、阎立德等大臣继续前行。四月初六日到达幽州后由长孙无忌在城南进行誓师大会，并犒劳六军后向辽东进发。十日岑文本在幽州病逝。

盖牟城之战

与此同时，李世𪟝和李道宗已先于李世民渡过辽河，645年夏四月二十六日，李世𪟝攻下盖牟城（今辽宁抚顺），获得人口二万，粮十万石，唐太宗改称其地为盖州。在海路，张亮等已越过渤海登陆，五月初二日，麾下行军总管程名振乘夜从西门攻下沙卑城（今辽宁大连），俘虏其男女八千人。为了震慑高句丽，张亮派先遣船队到鸭绿江入海口，但并没有按唐太宗最先要求进一步向平壤进发。

辽东城之战

很快，李世𪟝和李道宗将隋炀帝曾久攻不下的辽东城（今辽宁辽阳）包围。五月初八日高句丽派国内城和新城4万步骑来支援辽东城，李道宗先是遣手下将领张君乂迎战，不久张君乂不支向后退却。李道宗见情势紧急，亲率骑兵4千冲锋，一举击破高句丽援军，斩首千馀级，张君乂作战不利溃退被处决。
五月十日太宗度过辽河后，下令拆除桥梁，以坚定士卒决心。到辽东城外与李世𪟝会合后，将辽东城重重包围。五月十七日行军大总管、英国公李世𪟝率行军总管张俭等人以及契丹、奚、霫等族仆从军攻其南面。副大总管江夏郡王李道宗、第一军总管虢国公张士贵等人，率军攻其西面。前军大总管夔国公刘弘基等，负责填壕沟。鄂国公尉迟敬德指挥军乐队奏乐助阵。高句丽为防御唐军的抛石车，在城楼上积木为战楼，但并不能抵御飞石的打击，在抛石车和撞车的攻击下，纷纷倾倒。此时大刮南风，李世𪟝下令发射火箭纵火焚其西南楼，风助火势，延烧到城中。唐军登城击破城楼上的盾排兵后，攻下了辽东城。此役高句丽被烧死者万余人，俘虏士兵上万，户口四万人，粮五十万石。以其城为辽州。

白岩城之战

拿下了辽东城后，唐军进军白岩城，由行军大总管英国公李世𪟝总指挥。攻城时右卫大将军李思摩中箭，太宗亲自为他吸血疗伤，以鼓励士气。白岩城靠山临水，极难攻下。贞观十九年六月丁酉（六月初一日，645年7月2日），白岩城城主孙代音请降，获男女一万人，胜兵二千四百，以其城置岩州，授孙代音为岩州刺史。

驻跸山之战

随后李世民开始向安市城（今辽宁鞍山）进军，六月二十日到达安市城下。二十一日高句丽北部耨萨高延寿、南部耨萨高惠真帅高丽、靺鞨兵十五万援救安市，二十三日行军大总管李世𪟝率虢国公张士贵等马步军十四总管领步骑一万五千人于城西岭立阵迎敌，赵国公长孙无忌则率牛进达等马步军二十六总管以及精兵一万一千为奇兵，埋伏于山北。太宗亲自带领骑兵四千，潜趋敌营北山之上（驻跸山，今辽宁省辽阳市西南的首山）。
高延寿、高惠真在与李世𪟝对阵时，长孙无忌、牛进达等率军从狭谷冲出，冲击高句丽军后部，李世𪟝以步卒长枪一万在前攻击，太宗则领兵从山上冲击，在三面夹击下，十五万高句丽军崩溃，被斩首二万余级。唐军左武卫将军王君愕战死。高延寿、高惠真冲出包围，依山自保。
唐军在驻骅山大破高句丽之后，高延寿、高惠真帅其余众三万六千八百人请降，太宗任命耨萨以下酋长三千五百人为武官，迁到中国内地，馀众三万放还平壤，将反唐的靺鞨三千馀人，尽数坑杀。获马三万疋、牛五万头、明光甲五千领，辎重无数。高句丽放弃后黄城及银城，数百里无复人烟。太宗将此战驾临的山冈命名为驻跸山，因此又称为“驻跸山之战”，以两万五破十五万，三面夹击，堪称经典。太宗又令将作监画《破阵图》，命中书侍郎许敬宗撰文勒石以纪其功。此战中薛仁贵穿上异于众人的白色衣甲，手持方天画戟英勇作战，自此得到太宗赏识，成为唐朝大将。

安市城之战

在攻安市城前，唐太宗就得知安市城地势难攻，安市城主杨万春（中国及朝鲜史书中均失安市城城主的名字，朝鲜民间传说此人名叫杨万春）机智勇敢有一支强大的守城部队。渊盖苏文摄政高句丽后，杨万春拒绝接受渊盖苏文摄政。渊盖苏文曾发兵攻打安市城，但没有成功，因此只好让杨万春继续担任其职务。唐太宗打算先攻打较为容易的建安城（今辽宁营口）。这样拿下安市城南边的建安城，安市城也就不攻而破。李世𪟝对此表示反对。他认为如果唐太宗先攻建安城，安市城就会切断唐从辽东的供给线使唐陷入被动。于是唐太宗决定还是先围攻安市城。
当唐太宗和李世𪟝的部队到达安市城后，安市城的守城者见到唐太宗的旗帜就在城墙上大声漫骂，李世民大怒。李世𪟝于是请求唐太宗拿下安市城后坑杀全城百姓。这使得安市城的守卫者更加奋力抵抗唐军。就这样李世𪟝一时间拿不下安市城。
一天，唐太宗从安市城中传出杀鸡宰猪的声音。于是告诉李世𪟝说高句丽人可能在宴请守城部队准备突袭。李世𪟝于是作好了高句丽会在晚上突袭的准备。事不出所料，安市城当晚真的对唐进行了突袭。不过早有防备的李世民，亲自率兵击退了高句丽的进攻。
与此同时，李道宗开始在安市城的东南构筑一个用于进攻安市城的土山。为此，安市城也不断加高东南边的城墙。双方这样对峙了60天后，李道宗的土山已经高到可以看到安市城的里面。李道宗和他的手下果毅都尉傅伏爱登上了土山顶。忽然，土山出现了倒塌，并倒在了安市城的城墙上。安市城的城墙也因此倒塌。傅伏爱这时却擅离职守。高句丽趁乱发动进攻占领了土山，并使其成为安市城防守的武器。唐太宗一怒之下，公开处死了傅伏爱并下令对土山进行疯狂攻击。不过打了三天也没拿下来。李道宗于是赤脚向李世民请罪。不过李世民宽恕了他。
随着冬天的临近，唐的供给也开始匮乏。645年九月十八癸未日（10月13日），唐太宗下令撤退。

撤退

李世民在从辽东撤退的时候，强迫辽东城和盖牟城的居民迁往唐的地域内。据《资治通鉴》和《三国史记》记载，大约有7万高句丽人被迫从辽东迁入唐。李世民在过辽河的时候，遇到了泥沼。长孙无忌、杨师道等动用了1万人砍伐树木填平泥沼后，唐的大部队才通过辽河。一些士兵因此在寒冬等待时被冻死。此次战争，唐朝起兵十万，马万匹，海潞七万，共17万人马，未能全功。唐太宗很后悔发动了这场战争，说要是魏徵还活着，魏徵一定会劝阻他不要发动这场战争。魏徵643年病故后，唐太宗曾怀疑他与侯君集和杜正伦结党，而毁掉了他自己亲自撰写的魏徵墓碑。忏悔后，李世民下令重建魏徵的墓碑并召见和奖赏了魏徵的遗孀和孩子。
冬十月十一日，唐军到达营州（辽宁朝阳），以太牢（牛、羊、猪三牲全备）之礼祭奠战死将士。二十一日李世民率军进入临渝关（即山海关），皇太子李治自定州前往临渝关接驾。二十三日到达汉武台（在河北秦皇岛北戴河联峰山上），刻石纪功。十一月初七日到达幽州，初九犒劳全军后正式班师回朝。十六日到达易州（河北易县），二十二日到达定州（河北保定）。十二月，在定州到并州（今山西太原）的路上，李世民病痈，十二月十四日到达并州，在并州修养了几个月后才于次年三月初七日回到长安。回到长安后，唐太宗由于身体不适，将一般政事交由了太子李治处理。
唐太宗在路上处决了一些作战不利的将领，如平壤道行军总管张文干，而走海路的平壤道行军大总管张亮在战前就不看好这次征讨，怯懦畏战，后见太宗决心已下，遂请求统帅海路大军。以大总管之职，领4万余将士，只有麾下行军总管程名振攻下沙卑城，俘虏8千人，又在建安城下，不立营垒，被敌军偷袭，“亮素怯懦，无计策，但踞胡床，直视而无所言”，最后副将张金树鸣鼓令士众击贼，才击退敌军。唐太宗对其极为不满，因战时不便处置，回到长安后，三月二十七日在有人（名常德玄）告发其要谋反时，将张亮处斩。
646年（贞观二十年）闰三月二十七日，唐朝放弃辽州（辽东城）及岩州（白岩城）。唐与高句丽仍大致在辽水一线对峙。两军小规模战斗不断，高句丽也对新罗发动报复，攻击不止。
朝鲜18世纪以后的诗文、笔记小说称唐太宗眼部受到了箭伤。受伤说法于史无据。

第二次战争

唐太宗撤退后，渊盖苏文更加不把唐放在眼里，并时常偷袭唐的边境。唐太宗多次要他停止对新罗的攻击，但渊盖苏文对此毫不理睬。646年，宝藏王献给唐太宗两个美女，表示善意，唐太宗没有接受。唐太宗以弓服赐给渊盖苏文，渊盖苏文接受，但不遣使者答谢，于是当年冬十月，唐太宗下诏削弃高句丽的朝贡，不再承认高句丽的政治地位，并计划再次征讨，考虑灭亡高句丽。唐的大臣指出虽然因为高句丽城池依山而建，地形对唐军极为不利，因而导致贞观十九年（645年）对高句丽的进攻不成功，但战争使高句丽进入饥荒。因此建议唐太宗小规模攻打高丽句使高句丽农民无法耕作加剧高句丽的饥荒。在这一政策的指引下，于是唐太宗再次发起对高句丽的战争。虞部员外郎唐逊被任为扬州道造船大使，与副手钟离县令强伟造海船一千艘。
647年（贞观二十一年）三月初二日，唐太宗任命左武卫大将军牛进达为青丘道行军大总管，英国公李世𪟝为辽东道行军大总管，率领李海岸、孙贰朗、郑仁泰三个行军总管讨伐高句丽。牛进达和李海岸领一万余人从莱州渡海攻打辽东半岛南部，李世𪟝和孙贰朗、郑仁泰领配兵三千人和营州都督府所管辖兵马，从陆路渡过辽河袭击高句丽。五月二十五日李世𪟝攻克南苏城、木底城，将其城郭烧毁后退兵。七月十一日牛进达所部一万余人攻克高句丽的石城，虏男女数百人。进军至积利城下，高句丽出军万馀人拒战，李海岸等击破之，斩首二千级。唐军在取得积利城之战的胜利后，“乃皆还”，即退兵回国。
这两支部队以攻城略地，烧杀掳掠为目的。

第三次战争

647年（贞观二十一年）八月初四日，唐太宗派“遣宋州刺史王波利、中郎将丘孝忠发江南十二州（宣、润、常、苏、湖、杭、越、台、婺、括、江、洪）工人造入海大船及艓船三百五十艘，将征高句丽”，当时唐军刚刚结束青丘道行军和辽东道行军，而太宗就已经开始准备新的进攻了。十二月，高句丽再次派出使者（高宝藏第二子莫离支高任武）谢罪，唐太宗假意答应。
648年（贞观二十二年）正月二十五日，唐太宗派薛万彻和裴行方率军3万再次从莱州渡海入鸭绿江攻击高句丽。四月十四日唐军先锋古神感在曷山与高句丽步骑五千人短兵相接，斩首八百馀人。夜里再次设伏大败要乘夜偷袭水军船队的高句丽军万余人。六月二十七日薛万彻舟师深入鸭绿江百余里，派出一支奇兵偷袭大行城，至泊灼城（在今辽宁丹东以北的虎山）南四十里登陆扎营。泊灼城主所失孙（或所夫孙）率步骑万余人迎敌。薛万彻遣右卫将军裴行方领步卒，折冲尉罗文合为援军继进，自己领兵设伏突然出击，大破高句丽军，所失孙被斩杀。唐军进兵围泊灼城，高句丽派遣高文率乌骨（或马骨）、安地诸城兵三万余人来援，分为二个军阵。薛万彻也分为两军对阵，一接触之下即冲溃高句丽军，唐军俘获大批高句丽战俘，并攻克了泊汋城。九月初五日，唐军退兵回到国内。薛万彻在军中与诸将不和，回国后裴行方告发其对皇帝不满，被李世𪟝抨击后除名，流放象州（广西桂林）。后参与房遗爱谋反案被杀。

后续

太宗相信648年对高句丽的小规模袭击已消弱了高句丽的力量，于是准备在649年率30万部队一举灭亡高句丽。一些唐的官员指出发动这样规模的战争需要有一年的粮食储备，并需要建造更多的战船。由于剑南道（今中国四川、云南和重庆）一直没有卷入从隋到唐的讨高句丽战争，因此唐的官员建议在这一地区建造船只。唐太宗对此表示同意并派强伟到剑南道筹建船只，下令船造好后经长江、东海运到莱州。除此之外，越州（今浙江绍兴），婺州（今浙江金华）和洪州也负责建造一些船只。不过人们很快就意识到剑南道的人并不擅长建造船只，因此剑南道最后只负责提供建船的木材。这些木材被运到潭州（今湖南长沙）造船。
649年，唐太宗去世，依照太宗的遗愿攻打高句丽的计划被取消。唐高宗继位后，唐对高句丽和百济又发动了一系列战争。660年唐与新罗的联军先灭了百济。668年冬，唐和新罗的联军最终灭亡了高句丽。