6世紀後半、すなわち平原王代在位後半からは、4世紀から続いてきた東アジアの多元的な国際秩序が急激に変化した。589年に隋が中国中原地域を統一し、北方の突厥を制圧しながら、東アジア最高の強国に浮上したからである。隋は、自国中心の一元的な国際秩序を構築しようとした。さらに、東北アジアに対する高句麗の覇権を認めず、むしろ遼河方面に東進してきた。隋の東進に契丹・靺鞨などの東北アジアの一部勢力は、高句麗から離脱して随に付いたりもした。
この国際情勢の変化の中で、598年に高句麗の嬰陽王(在位:590~618は、隋の遼西地域を攻撃した。隋の文帝(在位581〜604は、すぐに反撃に出た。30万人以上の陸軍と水軍を動員し、高句麗を攻撃させた。しかし、梅雨で陸軍の軍需補給に問題が生じ、台風で水軍が崩壊した。598年、隋の反撃は試みすらできずに失敗した。
隋の高句麗攻撃は、612年に再開された。隋の煬帝(在位604〜618は、高句麗を攻撃するために百万人を超える軍隊を動員した。それまでの世界の歴史の中で最大の軍隊だった。それにもかかわらず、高句麗はこの戦争で隋の軍隊を退けた。揺動地域の城のいずれも陥落しなかったほど防御が堅固で、嬰陽王と乙支文徳をはじめとする主要な貴族勢力が力を合わせたためである。乙支文徳の薩水大捷が、この戦争の決定的な戦いの一つであった。
隋は613年と614年にも高句麗を攻撃した。しかし、既に隋の内部では、高句麗との戦争に不満が高まっていた。農民の反乱が全国各地で発生し、楊玄感など主要な貴族の反乱も起きた。このため、隋は高句麗攻撃を続けることができなかった。反乱の渦に包まれた隋は、618年についに滅亡した。
隋に続いて、中原地域を掌握したのは唐であった。唐は、最初は高句麗と友好関係を結ぼうとした。高句麗も隋との戦争で国力が大きく消耗していた。このため、両国はしばらくの間、友好的な姿を見せた。しかし、620年代後半、唐は内外の混乱を収拾し、東アジア最高の強国に浮上した。そしてすぐに、高句麗に外交的圧迫を加えてきた。隋のように自国中心の国際秩序を強制したのである。これに対して、高句麗では千里長城を築造して唐の攻撃に備えた。しかし、この時に高句麗の貴族勢力の内部は、対唐強硬派と穏健派に分かれていた。
-
蓋蘇文という者がおり、蓋金とも呼ばれていた。姓は泉氏で、自身が水の中で生まれたとし、人を惑わした。性格は残忍で乱暴であった。父は東部大人大対盧である。[彼が]死ぬと、蓋蘇文は当然その地位を継ごうとしたが、国人が嫌がり、引き継ぐことができなかった。このため、土下座して人々に謝罪して攝職を求めながら、[させてみて]ふさわしくない場合は、廃しても後悔しないとした。人々が哀れに思い、最終的に地位を継がせた。しかし、あまりにも乱暴で悪事を働くため、大臣たちが建武榮留王と相談し、殺そうとした。蓋蘇文が[これに]気付いて諸部の[兵を]呼び集め、閱兵をすると偽って宴を張り、大臣の臨席を求めた。客が着くと、実に百人以上が皆殺しにされた。また、王宮に走り込み、建武を殺して死体を裂き、溝に投げてしまった。さらに、建武の弟の息子の藏を立てて王とし、自分は莫離支となり、国政を意のままにした。[莫離支というのは]唐の兵部尚書中書令に該当する地位とされている。
(「新唐書」巻219、東夷列伝、高句麗)
上記「新唐書」記録のとおり、淵蓋蘇文は、大臣たちつまり主要な貴族勢力と対立し、そこから排除される危機に対処した。これに対して642年に、淵蓋蘇文は最終的に政変を起こした。これにより、彼に反対した主な貴族勢力と營留王を排除し、藏つまり宝蔵王を王に立てた。こうして、高句麗の政治権力を淵蓋蘇文が掌握したが、彼は対唐強硬派であった。
淵蓋蘇文が起こした政変の余波は、高句麗全域にまで及んだ。安市城の場合、淵蓋蘇文に反対して武力衝突まで行った。内紛の兆しが芽生えていたのである。唐からすると、淵蓋蘇文の政変は高句麗を攻撃する絶好の機会であった。淵蓋蘇文が王を殺害したという点で、大義名分も立った。このため、645年に唐の太宗(在位626〜649は、高句麗の攻撃に出た。
隋との戦争とは異なり、645年の戦争で、高句麗の遼東地域のいくつかの城が唐の攻撃によって陥落した。唐の大軍は、揺動地域の防衛を突破し、国内城 - 平壌方面に進撃してきた。このような危機的状況の中で、安市城の抗戦が目を引く。安市城は唐の太宗が率いる15万の大軍を迎え、数ヶ月以上その攻撃を防いだ。唐の太宗は最終的に撤収した。後にも高句麗を攻撃しようと何度も軍隊を送ったが、大きな成果は得られなかった。
高句麗が西方の隋・唐との戦争中、百済と新羅の動きも活発であった。両国は隋・唐によって高句麗を牽制しようとする一方、互いの間でも絶えず戦争した。このように、三国の複雑な国際関係の中で、最も劣勢に置かれたのは新羅であった。このような状況で、648年に新羅の金春秋は、唐との軍事同盟を成功させた。唐・新羅同盟が結ばれたのである。唐・新羅連合軍は、まず660年に百済を攻撃して滅亡させた。そして、その攻勢を続け、高句麗を攻撃した。
高句麗は、最初のうちは唐・新羅連合軍の攻撃を防ぐことに成功した。さらに、百済の復興運動が活発に展開され、唐は高句麗への攻撃を続けるかどうか迷った。ところが、665年に淵蓋蘇文が死亡し、事態が急変した。淵蓋蘇文の後の最高権力者の地位に上がった長男の男生と次男の男建、三男の男産が分裂・対立したためである。これにより、高句麗は内紛に巻き込まれた。男生は二人の弟に政権を奪われたが、政権を取り戻そうと唐に降伏し、唐の軍隊と一緒に高句麗を攻撃した。
内紛に揺れる高句麗は、もはや唐の軍隊を防ぐことができなかった。最終的に668年、国都平壌城が唐・新羅連合軍によって陥落した。宝蔵王と主な貴族は唐の捕虜となり、唐の国都長安に連れて行かれた。以来、高句麗の遺民は剣牟岑、安勝、高延武などを中心に熾烈な復興運動を展開したが、王朝を再建するには至らなかったのである。