隋与高句丽的战争
隋与高句丽的战争发生在598年至614年。隋文帝和隋炀帝多次派出空前的大军征讨高句丽但惨败而归。经过多次交战后，高句丽婴阳王将逃到高句丽的斛斯政遣返，隋炀帝撤軍。由于长年大规模征兵，隋国內出現隋末民變，后灭亡。不过隋朝的屡次空前大规模进攻也消耗了高句丽的国力。
平原王在位早期，高句丽与隋维持着紧张而和平的关系，继北朝之后，受隋文帝册封为“高丽王”。由于此时百济与新羅的联盟早已瓦解，高句麗南部相对平静。586年，平原王将都城由平壤城迁至长安城（即今朝鲜平壤市区），直至668年高句丽灭亡。历时83年。
隋文帝开皇十八年（598年），高句麗先發制人突襲遼西的營州，激怒隋文帝，引發高句麗與隋朝第一次戰爭。隋文帝派汉王杨谅协高颎和大将周罗睺率30万海陆大军攻打高句丽。
周罗睺的海军同时也是困难重重。虽然隋的海军尽可能地靠着海岸前行，但在海上遇大风，船多沉没。隋的海军一抛锚休息，高句丽的先遣部队就会出现进行袭击。由于周罗睺先前已损兵折将，元气大伤，败于高句丽。
据《隋书》记载，这次战役中，隋军因遭遇瘟疫损失近九成。而与隋相比，高句丽军队伤亡不多。杨谅别无办法，只好撤退。此次战役是隋文帝仅有的一次大败仗。为防止隋的再次入侵，婴阳王高元曾上表称“辽东粪土臣元”，隋文帝只好适时罢兵，待之如初。
604年，隋炀帝登基后，大修大运河，将中国北部的政治中心与经济发达的南方连接起来。这使得跨地区大规模运送军队成为可能。不过京杭大运河的兴建使得百万计的劳工伤逝性命，劳民伤财对隋的统治也留下祸根。
大业六年（610年），大运河建成后，隋炀帝开始募集军队。募集的军队被集中在涿郡（位于今北京通州）。据《隋书》记载，此次募集耗时数年，规模前所未有。据《三国史记》的记录是此次出动了三十万的作战部队。负责后勤和运输的人员还要多于这个数字。整个军队的总数说法不一，估计在100万上下。大业八年（612年）二月，隋炀帝从江都大运河坐龙舟前往涿郡，隋的大军开始出发。行进的部队排成的队绵延400公里，昼夜不绝。苦于服役的民伕纷纷逃亡，成为盗贼，炀帝下令都尉、鹰扬与沿途郡县联合追捕，捉到的立即斩首处决。由于人数巨大，全部部队用了40天才出发完毕。四月，到达涿郡的临朔宫。
大业八年（612年）正月初二日壬午，隋炀帝正式下诏发兵辽东，隋军分为左右两军。总1133800人，号称200万。
左军：
右军：
水军：
598年的战争，高句丽得到一些缓冲地域。由于这些地域不适于和隋这么大规模的军队进行面对面的交锋，高句丽婴阳王将军队撤到辽水一带。天时地利，612年，辽河水比往常提前好久就开始解冻了。当隋炀帝在三月十五日到达的时候，辽河水已全部融化。隋炀帝毫不气馁，下令工部尚书宇文恺在辽河上修建了3座桥梁。不过隋炀帝所修的桥还没修到对岸，十九日，高句丽就对隋军发动了进攻，并有效地击退了隋炀帝的第一次进攻。此战隋军大将麦铁杖、钱士雄、孟金叉等人战死。不过何稠最终将桥修好，隋军过桥包围了辽东城。
六月十一日，炀帝抵达辽东城，责骂诸将无能，并在城西数里建造六合城坐镇指挥，四下分兵攻打高句丽诸城。开战前，隋煬帝楊廣下令隋将不得擅自作出任何有关作战决定，必须先向他报告后再听从命令。这使得隋军在战场上很被动。隋将在做每个决定的时候都要先派人驰报远在后方的煬帝，这就延误了军情。高句丽的军队也因此有充足的时间进行重整和反击。
就这样5个月过去了，杨广没拿下辽东城。于是，杨广感到需要改变策略。
隋炀帝的新战略是在同高句丽在辽东周旋的同时，派海陆军攻打高句丽的首都平壤。30多万陆军和20万水军构成的先遣队就这样出发了。
隋朝大将来护儿指挥的水军先于陆军到达了大同江（当时叫坝水），距离平壤城六十里。发现隋的陆军没有到达，婴阳王派出了一小批军队与入侵的隋朝军队交战。简短的交锋后，高句丽的军队假装被击败并向城里撤退。隋朝军队将领以为立功的大好时机已到来，带领10万军队开始围攻平壤。
当隋朝军队来到平壤的外围城堡时，发现大门敞开，墙上也无人把守。进入城堡后，发现地上放着钱财和武器。为了谨慎起见，隋朝军队将领下令禁止掠夺。当隋朝军队来到一个寺庙后，遭到了高句丽的伏击。不过高句丽的军队并没有取胜，然后就撤逃了。这次隋朝军队将领真的以为高句丽不行了，于是开始纵兵掠夺外围城堡，队伍开始分散。
正当隋朝军队掠夺之时，一支由几千人组成的高句丽先遣部队在婴阳王之弟高建武的率领下对隋朝军队进行了伏击。毫无防备的隋朝军队一时慌了手脚，不知所措，并开始向海边撤退。第一次单独行动失败后，隋朝军队的将领决定还是等隋朝部队的陆军到达后再围攻平壤。
然而，隋炀帝派出的陆军在路上也出了问题。在隋国内行军，隋军后勤很有保障。但一旦进入高句丽的国土，隋朝军队的后勤供应就会遭到高句丽的伏击。为了解决这个问题，隋炀帝下令每个士兵都要自己携带食物。不过这大大加重了士兵的负担。许多士兵为了减负，扔下所带的食物。等隋朝军队到达鸭绿江后，物资已严重缺乏。
三月十五日，隋二十四军中的九军三十万五千人渡过辽河，之后到达鸭绿江。高句丽大将乙支文德过江诈降进入隋军大营，隋军主将宇文述、于仲文曾接到炀帝密旨，要生擒婴阳王高元和及文德，于仲文等人原本要将乙支文德关押，被时任慰抚使的尚书右丞刘士龙阻止，将文德放走，于仲文不久后悔，派人追上文德，让他再回来议事，文德不从，立即渡江回去。于仲文派兵追捕，乙支文德且战且退，并送给于仲文一首诗：“神策究天文，妙算穷地理。战胜功既高，知足愿云止。”劝他退兵。于仲文回书招降，文德将营寨烧毁后撤退。
在军事会议上，由于于仲文放跑了乙支文德，他提议以精锐追击文德，宇文述则以军中缺粮为由，想要退兵。两人争吵，于仲文由于先前得到炀帝的节度诸军命令，继续命隋军渡江追击。乙支文德在隋营时见军中士卒面带饥色，认为隋军缺粮，于是与隋军交战时，在一天中故意战败七次，引诱隋军追赶，拖长隋军的后勤线。
在鸭绿江和平壤之间有一条清川江（当时叫萨水），乙支文德下令在清川江的上游修筑堤坝蓄水。当隋朝军队到达清川江时，江水很浅。于是隋朝军队便涉水过江，此时离平壤城只有三十里，隋军在山下扎营。乙支文德再次派出使者诈降，称只要隋军退兵，就将国主高元送到隋帝面前谢罪。宇文述见士卒疲惫，平壤城又险峻坚固，易守难攻，乙支文德降书正中下怀，可以有借口退兵。七月二十四日，正当隋朝军队撤退过江之时，乙支文德下令开闸放水。数千隋朝军队被淹死。乙支文德随后率领高句丽军队向入侵的隋朝后部军队发动了猛烈的进攻，隋军大败，一路溃散逃亡者数不胜数，有的官军一日一夜连跑四百五十里，直到鸭绿江。隋炀帝派出的30多万陆军仅有2700人返回辽东城。
隋炀帝首次与高句丽的战争结果，损失30万大军，只攻下辽河西岸的武厉城（置辽东郡及通定镇）。
隋大业九年（613年）正月，隋炀帝再次征兵天下，编成骁果军，设置折冲、果毅、武勇、雄武等郎将军官，以统领骁果军，并恢复了前征辽主将宇文述等人的官职，再次对高句丽发动进攻。
三月初四，炀帝到达辽东城，四月二十九日，宇文述、杨义臣率六路大军渡过鸭绿江进军平壤城。杨义臣与作为先锋，与乙支文德交战，多次战胜。六月初三，在隋炀帝亲征高句丽之时，杨素的儿子杨玄感在国内谋反。担心两面受敌，隋炀帝被迫命正在高句丽作战的宇文述等人撤军回国镇压杨玄感的叛乱。兵部侍郎斛斯政作为杨玄感党羽，出逃投向高句丽，使高句丽尽知隋军虚实，乘机追击，殿后的隋军李景部多被打败。
在镇压了杨玄感的叛乱后，隋炀帝于大业十年（614年）又攻高句丽。虽然隋炀帝冲破了高句丽的第一道防线，但由于高句丽的持续伏击和对隋朝军队供给线的切断，隋炀帝始终不能拿下辽水这层防御线。婴阳王将在杨玄感造反后逃到高句丽的斛斯政遣返给隋炀帝。隋炀帝接受了婴阳王的请降并撤军。
隋炀帝楊廣屢屢对高句丽發動大規模戰爭的原因其實并不如許多史書寫的，僅僅是因為“高句麗本為箕子所封之地，今又不遵臣禮。”實際上煬帝即位後，對高句麗問題十分重視，征伐高句麗有著多方面的原因。一是出師理由，高麗王拒絕向隋朝貢稱臣；二是為鞏固邊疆，消除外患；三是當時高句麗暗中與隋的另一外患突厥勾結，聯手抗隋；四是當時高句麗國力的確不容忽視，成為隋向外擴張的一大阻礙。然而，连续三年的大舉用兵使隋朝損失数十万人，“九軍並陷，將帥奔還亡者二千餘騎，”引起国内对煬帝的强烈不满。
隋第一次征伐高句丽之前的大业六年（610年），國內便爆发了雁门郡人尉文通的起义，到了大業十年（614年）第三次征伐高句丽失败之后，已无力镇压隋末民变了，炀帝被迫迁都江都。隋对高句丽的连年戰爭使經濟受創，國力銳減，炀帝民心盡失。不僅農民起義，連將領也相繼叛變；隋都大興城在617年11月為晋阳留守李淵所據，洛阳城在618年为宇文述之子宇文化及與后来的王世充佔領；618年4月11日杨广在广陵郡的江都被宇文化及所杀，王世充并於618年6月23日扶植隋皇泰主杨侗登上帝位，619年5月22日王世充得到隋皇泰主杨侗禅让后自立为帝，隋朝灭亡。不过隋对高句丽的连年征伐也严重消耗了高句丽的国力，再也無力向外擴張，被新羅後來居上。666年12月至668年9月，在唐朝與新羅的聯合夾擊下，高句丽最终灭亡。