公元581年隋建立后,高丽王高汤遣使向隋朝称臣,高汤遂被封为高丽王。八年后,隋灭陈,一统中土。当时的高汤见到中土统一,深知自己面对自西晋以来第一个统一而且强大的隋朝,以后的日子恐难安稳,便积极备战整军,广积粮草。
隋文帝极为不满,责问高汤道:“辽河再广阔,比长江如何?高丽人再多,能比得上陈国吗?我如果不是心存仁义的话,责怪你之前的罪行,任命一个将军,能费多少力气呢?之所以告诉你这个,是允许你改过自新。希望理解我的用心,你自求多福吧。”高汤看到诏书大惧,奉表谢罪后竟然病死了。高汤之子高元即位,心中对隋有着仇恨,遂率万余靺鞨骑兵攻打辽西,结果被击退。隋文帝大怒,正欲征讨,高元慌忙遣使谢罪,上表自称“辽东粪土臣元”,这才令隋文帝罢兵。
604年,隋炀帝杨广即位。为了炫耀武力,他修东都洛阳、大运河,南征越南,北巡塞外,派兵攻打突厥。大业七年,炀帝北巡涿郡,命高丽王亲自朝见,但高丽王却没敢来。隋炀帝借口没看见高丽王,以其不尊臣礼为由,下令全国的士兵次年征讨高丽,命人督工在东莱海口造战舰300艘。民工昼夜立于水中造船,自腰以下都生满蛆,工匠死掉三分之一。隋炀帝又发江淮以南水手10000人、弩手30000人、岭南排刺手30000人,再令河南、江南造戎车50000乘送高阳,命江南民夫运米至涿郡。一时间,船舻千里皆满载兵甲器物,路上几十万人填溢道路,昼夜运输战具、粮食,死者相枕,天下骚动。
大业八年,隋炀帝第一次征伐高丽,左右十二军名目纷繁,号称200万,隋军役夫近300万。炀帝自以为“吊民伐罪,非为功名”,下令诸将不得纵兵、不得擅杀、听候指示、不可擅自做主,以此宣扬天朝大国的威仪仁义,不料反被高丽所利用。
隋军一开始很顺利,一路皆克,渡过辽河,在东岸歼灭高丽军万余人,直抵辽阳城下。隋朝诸将怕被皇帝责杀,每次作战事无巨细都一一禀报,结果导致命令批准迟缓,延误战机。而守城的高丽人在情势危急时总是诈降,等到隋军一停止进攻就马上修补城池,使得隋军频战频失。另一支由隋将公孙述率领的大军为了赶路,弃粮轻装前进,士兵走到半路就没粮食吃,又饥又寒之下,竟还能一日七胜。隋军自恃骤胜,未等歇息整装,就贸然东渡济水,距平壤城30里因山为营。可是,平壤城坚池深,哪是这般容易攻克。公孙述的士兵无粮,又冻又饿,只好退师。结果,高丽军自后追击,隋军溃不成军。此后,隋军其他各路相继败北,炀帝一征高丽以惨败告终,隋军损失30余万人。
613年,炀帝再次亲征高丽。此次隋军包围辽阳城,昼夜不停地猛攻20余日,辽阳岌岌可危。此时,隋军后方负责督运粮草的杨玄感突然叛乱,本来有望征服高丽的炀帝不得不撤兵回国平乱。撤军路上,将军资、器械等尽数丢弃。就这样,隋炀帝第二次征高丽半途而废,无功而返。
614年,炀帝三征高丽,隋军在卑沙城大败高丽军。此时,高丽与隋历经三年的战争,国力早已不支,几乎到了山穷水尽的地步,只好向炀帝称臣请和,并且送还逃到高丽的杨玄感叛乱之叛将斛斯政。隋炀帝也因疲于征服高丽,正愁没有台阶可下,刚好借着高丽的投降举动适时收兵,也挽回前两次失败之辱。加之此时隋朝国内早已因征高丽而怨声载道,天下骚动,“群盗蜂起,不可胜数”,遂罢兵许和。
纵观隋之三伐高丽,本都是胜券在握,却两次惨败,原因就在于隋炀帝好大喜功,急于证明自己的英明、伟大,可又耐挫能力差,在失败的打击面前乱了方寸,造成近百万生命的损失和巨大财富的浪费,并最终把国力消耗得近乎空竭。虽然隋朝损失的人口对本国并没有致命的影响,但百万之师所需粮草、运输之人力却耗费巨多。一时间引发了民间耕稼失时、官府侵逼、徭役繁重等多重社会矛盾,间接导致隋末之变,乃至亡国。