唐太宗征討高句麗（제1차 고구려-당전쟁，第一次高句麗-唐戰爭、제1차 여당전쟁，第一次麗唐戰爭）發生在645年（唐太宗貞觀十九年）。642年（貞觀十六年），淵蓋蘇文殺害榮留王之後，擁立榮留王的侄子高寶藏為王，並自封為「大莫離支」攝政。唐太宗爲了聲討淵蓋蘇文弒君、幫助與高句麗作戰的新羅，準備與高句麗開戰。644年（貞觀十八年），太宗帶領李世𪟝、李道宗、長孫無忌諸將率軍親征高句麗。645年（貞觀十九年），唐軍衝破高句麗的防線，似乎大功在即，準備直接攻打高句麗國都平壤。但在安市城（今遼寧省海城市）受阻，再也無法推進。當年秋季，唐軍班師。從此之後，太宗對高句麗的進攻，僅保持在一些小規模的襲擊。647年（貞觀二十一年），唐太宗派牛進達率兵從海路、李世𪟝率兵從陸路攻打遼東半島。648年（貞觀二十二年），太宗再派薛萬徹率軍從海路攻打鴨綠江口。唐朝與回紇等鐵勒諸部擊滅薛延陀，設立燕然都護府後，開始集結水陸大軍，準備在649年（貞觀二十三年）再一次大規模攻打高句麗。不過由於太宗于同年駕崩，使唐朝再攻高句麗的戰役擱淺。直到668年（總章元年），才由太宗的兒子唐高宗派軍聯合新羅滅亡了高句麗。
背景
隋煬帝對高句麗的連年征戰，使得隋朝國力銳減，民心喪失，這成為隋朝滅亡的一個主要原因。同時，高句麗也因消耗太大而臣服隋朝，不敢再惹事。因此，618年（武德元年），唐高祖建立唐朝之後，高句麗榮留王高建武與唐朝修好，622年（武德五年），雙方交換隋朝戰爭時的戰俘。624年（武德七年），榮留王接受了唐朝的年號武德。高祖冊封榮留王為遼東郡王、高句麗王。與此同時，唐朝冊封百濟武王扶余璋為帶方郡王、百濟王，新羅真平王金伯凈為樂浪郡王、新羅王。
626年（武德九年），在唐朝開國戰爭中立下顯赫功勞的秦王李世民發動玄武門之變，皇太子李建成和齊王李元吉被殺。高祖李淵立李世民為皇太子后兩個月內禪，李世民成為唐朝第二任皇帝，廟號太宗。唐太宗在位前期很長時間裡，唐朝與高句麗大致維持著友好的關係。太宗試圖在海東三國之中保持主導地位。太宗登基后不久，就派朱子奢到朝鮮半島譴責海東三國之間的相互爭鬥。631年，在得到高句麗榮留王的同意后，太宗派特使到高句麗重新安葬陣亡的隋兵。但太宗對高句麗沒有放棄征服策略。太宗認為高句麗據有的「遼東」（當時的「遼東」的概念略同于漢朝四郡的範圍，即中國東北遼河以東地區以及朝鮮半島的北部）為「舊中國之有」，而今「九瀛大定，唯此一隅」，決心將對高句麗的征伐作為中國統一戰爭的最後部分。雙方在背地裡都明白兩國最終不免一戰。高句麗花費了巨大人工物力，在沿唐邊境修築了高句麗長城，從夫余城（今吉林省四平市以西）至渤海，長千餘里，用時十六年修成。
641年（貞觀十五年），太宗派遣使者陳大德出訪高句麗。陳大德在高句麗訪問期間，遇到了許多在高句麗安頓下來的原隋朝兵將。陳大德回到長安后，將這一情況稟告了太宗。太宗於是萌生攻打高句麗的想法，但很快又打消了這一念頭，說是爲了不讓山東人受到兵役勞累。
642年（貞觀十六年），高句麗榮留王高建武和大臣合議，打算誅殺暴力而兇殘的臣下淵蓋蘇文。淵蓋蘇文聞訊后，設下陷阱邀請諸大臣觀看他的軍隊閱兵，並設宴款待。在宴席上，淵蓋蘇文殺死了榮留王的一百多位大臣，繼而進宮弒殺了榮留王，而後擁立榮留王的侄子高藏為高句麗王。淵蓋蘇文自封為「大莫離支」，控制了高句麗軍政大權，進行攝政。這一訊息傳到唐朝，亳州刺史裴莊建議攻打高句麗。但太宗卻表示自己對榮留王的遇害感到悲哀，但以乘其國喪攻打高句麗並不合適。不過，643年（貞觀十七年）太宗又開始考慮對高句麗動武，並想先命令契丹和靺鞨偷襲高句麗。太宗的內兄司徒長孫無忌對此表示反對，建議太宗先假裝與高句麗交好，然後趁其不備再進攻。太宗接受了他的建議，冊封寶藏王為遼東郡王、高句麗王，授予「上柱國」的稱號。
643年（貞觀十七年），新羅善德女王上書唐朝稱百濟聯合高句麗攻打新羅，請求唐朝援助。太宗於是派司農丞相里玄獎到高句麗，下令高句麗和百濟停止攻打新羅。相里玄獎到達高句麗都城平壤時，淵蓋蘇文正在與新羅交戰。得知相里玄獎的到來，淵蓋蘇文返回到平壤會見他。淵蓋蘇文拒絕了太宗的要求。相里玄獎回到長安后，將此事稟告太宗。太宗於是決意攻打高句麗，大將李世𪟝也表示支援。雖然褚遂良等文官表示反對，但太宗攻打高句麗的決心已定。
第一次戰爭
張儉征高句麗
新羅數次向太宗請援，644年（貞觀十八年），太宗派閻立德到洪州（今江西省南昌市）、饒州（今江西省鄱陽縣）和江州（今江西省九江市）籌建四百艘軍船，用以運輸糧草，並派遣營州都督張儉、守左宗衛率高履行等率領幽州（今北京市）、營州（今遼寧省朝陽市）兩個都督府的兵馬以及忠於唐朝的契丹、奚、靺鞨的僕從軍隊，讓他們對高句麗進行探試性的攻擊。張儉領軍到達遼西，因為遼水正在汛期，水勢大漲，唐軍長期未能渡河。太宗將張儉召回洛陽詢問后，發現他對高句麗的山川地形極為熟悉，於是仍任命他為行軍總管，兼領諸蕃部的騎兵，為大軍前鋒。
御駕親征高句麗
淵蓋蘇文馬上派特使到唐朝朝貢講和，以避免雙方戰爭的升級。不過太宗並沒有接受高句麗的朝貢，反倒將使者拘押，指控他們背叛榮留王，與弒君者同謀。644年冬，太宗帶著皇太子李治和大多數官員離開長安，開始向邊境進發。房玄齡和李大亮留守都城長安。太宗先是到了洛陽，又作了幾個月的進一步準備。
大概在645年的新年，太宗下令以刑部尚書、鄖國公張亮為平壤道行軍大總管，左領軍常何、瀘州都督左難當為平壤道行軍副總管，冉仁德、劉英行、張文干、龐孝泰、程名振等人為總管，率江、淮、嶺、硤勁卒4萬3千人，乘500艘戰船（閻立德所造）從萊州出發，渡黃海向平壤進發。與此同時以英國公李世𪟝為遼東道行軍大總管，禮部尚書江夏王李道宗為遼東道行軍副總管，張士貴、張儉、執失思力、契苾何力、阿史那彌射、姜行本、曲智盛、吳黑闥、李元正為行軍總管隸之，率步騎6萬從陸地向遼東進軍。同時下詔令契丹酋長於勾折、奚酋長蘇支、新羅王金善德、百濟王扶馀義慈等諸國君長領兵助戰。
太宗對這場戰爭的勝利充滿信心。他認為隋煬帝之所以沒能戰勝高麗的原因是隋煬帝對自己的人民過於殘忍而高句麗則愛惜自己的人民。隋煬帝用要反叛的部隊來打高句麗團結一心的軍隊，因此是不可能取勝的。現在這一切都已得到改變：首先，這次戰爭是大國打小國；其次，這場戰爭是正義之師討伐叛逆之賊；第三，這場戰爭是組織有素的部隊攻打另一個混亂的部隊；第四，這場戰爭是精力充沛的部隊攻打另一個疲憊不堪的部隊；最後，這場戰爭是士氣高昂的部隊攻打另一個抱怨連天的部隊。因此唐這次攻打高句麗是勝券在握。
645年（貞觀十九年）春二月十二日，太宗率六軍和長孫無忌等文武重臣開始離開洛陽前往高句麗。宋國公蕭瑀被留下來看守洛陽。三月十七日到了定州（今河北保定）后，太宗讓太子李治監國，並留在那負責部隊的後勤任務。與李治一齊留守定州還有高士廉、劉洎、馬周、張行成、高季輔。三月二十四日太宗帶著長孫無忌、岑文字、楊師道、尉遲敬德、劉弘基、閻立德等大臣繼續前行。四月初六日到達幽州後由長孫無忌在城南進行誓師大會，並犒勞六軍後向遼東進發。十日岑文字在幽州病逝。
蓋牟城之戰
與此同時，李世𪟝和李道宗已先於太宗渡過遼河，645年夏四月二十六日，李世𪟝攻下蓋牟城（今遼寧省撫順市），獲得人口二萬，糧十萬石，太宗改稱其地為蓋州。在海路，張亮等已越過渤海登陸，五月初二日，麾下行軍總管程名振乘夜從西門攻下沙卑城（今遼寧省大連市），俘虜其男女八千人。爲了震懾高句麗，張亮派先遣船隊到鴨綠江入海口，但並沒有按太宗最先要求進一步向平壤進發。
遼東城之戰
很快，李世𪟝和李道宗將隋煬帝曾久攻不下的遼東城（今遼寧省遼陽市）包圍。五月初八日高句麗派國內城和新城4萬步騎來支援遼東城，李道宗先是遣手下將領張君乂迎戰，不久張君乂不支向後退卻。李道宗見情勢緊急，親率騎兵4千衝鋒，一舉擊破高句麗援軍，斬首千馀級，張君乂作戰不利潰退被處決。
五月十日太宗度過遼河后，下令拆除橋樑，以堅定士卒決心。到遼東城外與李世𪟝會合后，將遼東城重重包圍。五月十七日行軍大總管、英國公李世𪟝率行軍總管張儉等人以及契丹、奚、霫等族僕從軍攻其南面。副大總管江夏郡王李道宗、第一軍總管虢國公張士貴等人，率軍攻其西面。前軍大總管夔國公劉弘基等，負責填壕溝。鄂國公尉遲敬德指揮軍樂隊奏樂助陣。高句麗為防禦唐軍的拋石車，在城樓上積木為戰樓，但並不能抵禦飛石的打擊，在拋石車和撞車的攻擊下，紛紛傾倒。此時大刮南風，李世𪟝下令發射火箭縱火焚其西南樓，風助火勢，延燒到城中。唐軍登城擊破城樓上的盾排兵后，攻下了遼東城。此役高句麗被燒死者萬餘人，俘虜士兵上萬，戶口四萬人，糧五十萬石。以其城為遼州。
白巖城之戰
拿下了遼東城后，唐軍進軍白巖城，由行軍大總管英國公李世𪟝總指揮。攻城時右衛大將軍李思摩中箭，太宗親自為他吸血療傷，以鼓勵士氣。白巖城靠山臨水，極難攻下。貞觀十九年六月丁酉（六月初一日，645年7月2日），白巖城城主孫代音請降，獲男女一萬人，勝兵二千四百，以其城置巖州，授孫代音為巖州刺史。
駐蹕山之戰
隨後太宗開始向安市城（今遼寧鞍山）進軍，六月二十日到達安市城下。二十一日高句麗北部耨薩高延壽、南部耨薩高惠真率高麗、靺鞨兵十五萬援救安市，二十三日行軍大總管李世𪟝率虢國公張士貴等馬步軍十四總管領步騎一萬五千人于城西嶺立陣迎敵，趙國公長孫無忌則率牛進達等馬步軍二十六總管以及精兵一萬一千為奇兵，埋伏于山北。太宗親自帶領騎兵四千，潛趨敵營北山之上（駐蹕山，今遼寧省遼陽市西南的首山）。
高延壽、高惠真在與李世𪟝對陣時，長孫無忌、牛進達等率軍從狹谷衝出，衝擊高句麗軍後部，李世𪟝以步卒長槍一萬在前攻擊，太宗則領兵從山上衝擊，在三面夾擊下，十五萬高句麗軍崩潰，被斬首二萬餘級。唐軍左武衛將軍王君愕戰死。高延壽、高惠真衝出包圍，依山自保。
唐軍在駐驊山大破高句麗之後，高延壽、高惠真率其餘眾三萬六千八百人請降，太宗任命耨薩以下酋長三千五百人為武官，遷到中國內地，馀眾三萬放還平壤，將反唐的靺鞨三千馀人，盡數坑殺。獲馬三萬疋、牛五萬頭、明光甲五千領，輜重無數。高句麗放棄后黃城及銀城，數百里無復人煙。太宗將此戰駕臨的山岡命名為駐蹕山，因此又稱為「駐蹕山之戰」，以兩萬五破十五萬，三面夾擊，堪稱經典。太宗又令將作監畫《破陣圖》，命中書侍郎許敬宗撰文勒石以紀其功。此戰中薛仁貴穿上異於眾人的白色衣甲，手持方天畫戟英勇作戰，自此得到太宗賞識，成為唐朝大將。
安市城之戰
在攻安市城前，太宗就得知安市城地勢難攻，安市城主（中國及朝鮮史書中均失安市城城主的名字，明代小說《唐書志傳通俗演義》此人名叫梁萬春，朝鮮民間傳說又作楊萬春）機智勇敢有一支強大的守城部隊。淵蓋蘇文攝政高句麗后，安市城主拒絕接受淵蓋蘇文攝政。淵蓋蘇文曾發兵攻打安市城，但沒有成功，因此只好讓安市城主繼續擔任其職務。太宗打算先攻打較為容易的建安城（今遼寧省營口蓋州市）。這樣拿下安市城南邊的建安城，安市城也就不攻而破。李世𪟝對此表示反對。他認為如果太宗先攻建安城，安市城就會切斷唐從遼東的供給線使唐軍陷入被動。於是太宗決定還是先圍攻安市城。
當太宗和李世𪟝的部隊到達安市城后，安市城的守城者見到太宗的旗幟就在城墻上大聲漫罵，太宗大怒。李世𪟝於是請求太宗拿下安市城后坑殺全城百姓。這使得安市城的深海守衛更加奮力抵抗唐軍。就這樣李世𪟝一時間拿不下安市城。
一天，太宗從安市城中傳出殺雞宰豬的聲音。於是告訴李世𪟝說高句麗人可能在宴請守城部隊準備突襲。李世𪟝於是作好了高句麗會在晚上突襲的準備。事不出所料，安市城當晚真的對唐軍進行了突襲。不過早有防備的太宗，親自率兵擊退了高句麗的進攻。
與此同時，李道宗開始在安市城的東南構築一個用於進攻安市城的土山。為此，安市城也不斷加高東南邊的城墻。雙方這樣對峙了60天后，李道宗的土山已經高到可以看到安市城的裡面。李道宗和他的手下果毅都尉傅伏愛登上了土山頂。忽然，土山出現了倒塌，並倒在了安市城的城墻上。安市城的城墻也因此倒塌。傅伏愛這時卻擅離職守。高句麗趁亂發動進攻佔領了土山，並使其成為安市城防守的武器。太宗一怒之下，公開處死了傅伏愛並下令對土山進行瘋狂攻擊。不過打了三天也沒拿下來。李道宗於是赤腳向太宗請罪。不過太宗因其遼東等功勛而寬恕了他。
隨著冬天的臨近，唐的供給也開始匱乏。645年九月十八癸未日（10月13日），太宗下令班師，臨行前在安市城下炫耀兵威，安市城中皆緊閉城門不敢出戰，安市城主登上城樓向太宗行拜禮辭別，太宗賞賜安市城主縑帛百匹，以表揚安市城主的忠誠。
班師
太宗在從遼東班師的時候，將遼東城和蓋牟城的居民遷往唐的地域內。據《資治通鑑》和《三國史記》記載，大約有7萬高句麗人從遼東遷入唐。太宗在過遼河的時候，遇到了泥沼。長孫無忌、楊師道等動用了1萬人砍伐樹木填平泥沼后，唐軍的大部隊才通過遼河。一些士兵因此在寒冬等待時被凍死。此次戰爭，唐朝起兵十萬，陸路六萬，海路4.3萬，共十萬人馬，未能全功。太宗很後悔發動了這場戰爭，說要是魏徵還活著，魏徵一定會勸阻他不要發動這場戰爭。魏徵643年病故后，太宗曾懷疑他與侯君集和杜正倫結黨，而毀掉了他自己親自撰寫的魏徵墓碑。懺悔后，太宗下令重建魏徵的墓碑並召見和獎賞了魏徵的遺孀和孩子。
冬十月十一日，唐軍到達營州（今遼寧省朝陽市），以太牢（牛、羊、豬三牲全備）之禮祭奠戰死將士。二十一日太宗率軍進入臨渝關（即山海關），皇太子李治自定州前往臨榆關接駕。二十三日到達漢武臺（在河北省秦皇島市北戴河聯峰山上），刻石紀功。十一月初七日到達幽州，初九犒勞全軍后正式班師回朝。十六日到達易州（河北省易縣），二十二日到達定州（河北保定）。十二月，在定州到并州（今山西省太原市）的路上，太宗病癰，十二月十四日到達并州，在并州修養了幾個月后才于次年三月初七日回到長安。回到長安后，太宗由於身體不適，將一般政事交由了太子李治處理。
太宗在路上處決了一些作戰不利的將領，如平壤道行軍總管張文干，而走海路的平壤道行軍大總管張亮在戰前就不看好這次征討，怯懦畏戰，后見太宗決心已下，遂請求統帥海路大軍。以大總管之職，領4萬餘將士，只有麾下行軍總管程名振攻下沙卑城，俘虜8千人，又在建安城下，不立營壘，被敵軍偷襲，「亮素怯懦，無計策，但踞胡牀，直視而無所言」，最後副將張金樹鳴鼓令士眾擊賊，才擊退敵軍。太宗對其極為不滿，因戰時不便處置，回到長安后，三月二十七日在有人（名常德玄）告發其要謀反時，將張亮處斬。
646年（貞觀二十年）閏三月二十七日，唐朝撤銷遼州都督府（下轄遼州、蓋州、巖州）及巖州（白巖城）編製，將巖州轄地劃歸遼州管轄，而原屬遼州都督府的遼州（遼東城）及蓋州（蓋牟城）則改由營州都督府管轄。兩軍小規模戰鬥不斷，高句麗也對新羅發動報復，攻擊不止。
朝鮮18世紀以後的詩文、筆記小說稱太宗眼部受到了箭傷。受傷說法于史無據。
第二次戰爭
太宗班師后，淵蓋蘇文更加不把唐放在眼裡，並時常偷襲唐的邊境。太宗多次要他停止對新羅的攻擊，但淵蓋蘇文對此毫不理睬。646年，寶藏王獻給太宗兩個美女，表示善意，太宗沒有接受。太宗以弓服賜給淵蓋蘇文，淵蓋蘇文接受，但不遣使者答謝，於是當年冬十月，太宗下詔削棄高句麗的朝貢，不再承認高句麗的政治地位，並計劃再次征討，考慮滅亡高句麗。唐朝大臣指出雖然因為高句麗城池依山而建，地形對唐軍極為不利，因而導致貞觀十九年（645年）對高句麗的進攻不成功，但戰爭使高句麗進入饑荒。因此建議太宗小規模攻打高麗句使高句麗農民無法耕作加劇高句麗的饑荒。在這一政策的指引下，於是太宗再次發起對高句麗的戰爭。虞部員外郎唐遜被任為揚州道造船大使，與副手鐘離縣令強偉造海船一千艘。
647年（貞觀二十一年）三月初二日，太宗任命左武衛大將軍牛進達為青丘道行軍大總管，英國公李世𪟝為遼東道行軍大總管，率領李海岸、孫貳朗、鄭仁泰三個行軍總管討伐高句麗。牛進達和李海岸領一萬餘人從萊州渡海攻打遼東半島南部，李世𪟝和孫貳朗、鄭仁泰領配兵三千人和營州都督府所管轄兵馬，從陸路渡過遼河襲擊高句麗。五月二十五日李世𪟝攻克南蘇城、木底城，將其城郭燒燬後退兵。七月十一日牛進達所部一萬餘人攻克高句麗的石城，虜男女數百人。進軍至積利城下，高句麗出軍萬餘人拒戰，李海岸等擊破之，斬首二千級。唐軍在取得積利城之戰的勝利后，「乃皆還」，即退兵回國。
這兩支部隊以攻城略地，燒殺擄掠為目的。
第三次戰爭
647年（貞觀二十一年）八月初四日，太宗派「遣宋州刺史王波利、中郎將丘孝忠發江南十二州（宣、潤、常、蘇、湖、杭、越、臺、婺、括、江、洪）工人造入海大船及艓船三百五十艘，將征高句麗」，當時唐軍剛剛結束青丘道行軍和遼東道行軍，而太宗就已經開始準備新的進攻了。十二月，高句麗再次派出使者（高寶藏第二子莫離支高任武）謝罪，太宗假意答應。
648年（貞觀二十二年）正月二十五日，太宗派薛萬徹和裴行方率軍3萬再次從萊州渡海入鴨綠江攻擊高句麗。四月十四日唐軍先鋒古神感在曷山與高句麗步騎五千人短兵相接，斬首八百馀人。夜裡再次設伏大敗要乘夜偷襲水軍船隊的高句麗軍萬餘人。六月二十七日薛萬徹舟師深入鴨綠江百餘里，派出一支奇兵偷襲大行城，至泊灼城（在今遼寧省丹東市以北的虎山）南四十里登陸紮營。泊灼城主所失孫（或所夫孫）率步騎萬餘人迎敵。薛萬徹遣右衛將軍裴行方領步卒，折衝尉羅文合為援軍繼進，自己領兵設伏突然出擊，大破高句麗軍，所失孫被斬殺。唐軍進兵圍泊灼城，高句麗派遣高文率烏骨（或馬骨）、安地諸城兵三萬餘人來援，分為二個軍陣。薛萬徹也分為兩軍對陣，一接觸之下即沖潰高句麗軍，唐軍俘獲大批高句麗戰俘，並攻克了泊汋城。九月初五日，唐軍退兵回到國內。薛萬徹在軍中與諸將不和，回國后裴行方告發其對皇帝不滿，被李世𪟝抨擊后除名，流放象州（廣西桂林）。后參與房遺愛謀反案被殺。
戰果
* 攻佔玄菟城、橫山城、蓋牟城、磨米城、遼東城、白巖城、卑沙城、麥谷城、銀山城、后黃城等十城。
* 獲戶6萬、人口16.8萬。
* 從四月到十月三次大戰，前後斬首四萬馀級。降其大將二人，裨將及官人酋帥子弟三千五百人，兵士十萬人（後放還本土）。獲牛馬各五萬匹。
後續
太宗相信648年對高句麗的小規模襲擊已消弱了高句麗的力量，於是準備在649年率30萬部隊一舉滅亡高句麗。一些唐的官員指出發動這樣規模的戰爭需要有一年的糧食儲備，並需要建造更多的戰船。由於劍南道（今中國四川省、雲南省和重慶市）一直沒有捲入從隋到唐的討高句麗戰爭，因此唐的官員建議在這一地區建造船隻。太宗對此表示同意並派強偉到劍南道籌建船隻，下令船造好后經長江、東海運到萊州。除此之外，越州（今浙江省紹興市），婺州（今浙江金華市）和洪州也負責建造一些船隻。不過人們很快就意識到劍南道的人並不擅長建造船隻，因此劍南道最後只負責提供建船的木材。這些木材被運到潭州（今湖南省長沙市）造船。
649年，太宗駕崩，依照太宗的遺願攻打高句麗的計劃被取消。唐高宗繼位后，唐對高句麗和百濟又發動了一系列戰爭。660年唐與新羅的聯軍先滅了百濟。668年冬，唐和新羅的聯軍最終滅亡了高句麗。