公元581年隋建立後,高麗王高湯遣使向隋朝稱臣,高湯遂被封為高麗王。
8年後,隋滅陳,一統中土。
當時的高湯見到中土統一,深知自己面對自西晉以來第一個統一而且強大的隋朝,以後的日子恐難安穩,於是便積極備戰整軍,廣積糧草。
隋文帝聞知極為不滿,責問高湯道:『遼河再廣闊,比長江如何?高麗人再多,能比得上陳國嗎?我如果不是心存仁義的話,責怪你之前的罪行,任命一將軍,能費多少力氣呢?之所以告訴你這個,是允許你改過自新。
希望理解我的用心,你自求多福吧』高湯看到詔書大懼,奉表謝罪後竟然病死了。
高湯之子高元即位,心中對隋有著嫉恨,遂率萬餘靺鞨騎兵攻打遼西,結果被擊退。
隋文帝大怒,正欲征討,高元慌忙遣使謝罪,上表自稱『遼東糞土臣元』,這才令隋文帝罷兵。
604年隋煬帝楊廣即位,為了炫耀武力,修東都洛陽、大運河,南征越南,北巡塞外,派兵突厥。
大業七年,煬帝北巡琢郡,命高麗王親自朝見,但高麗王卻沒敢來。
煬帝借口沒看見高麗王,以其不尊臣禮為由,下令全國的士兵次年征討高麗,命人督工在東萊海口造戰艦三百艘。
民工晝夜立於水中造船,自腰以下都生滿蛆,工匠死掉三分之一。
隋煬帝又發江淮以南水手一萬人、弩手三萬人、嶺南排刺手三萬人,再令河南、江南造戎車五萬乘送高陽,命江南民夫運米至涿郡。
一時間船艫千裡皆滿載兵甲器物,路上幾十萬人填溢道路,晝夜運輸戰具、糧食,死者相枕,天下騷動。
大業八年,隋煬帝第一次征伐高麗,左右十二軍名目紛繁,共一百一十三萬三千八百人,號稱二百萬,隋軍役夫近三百萬。
煬帝自以為『吊民伐罪,非為功名』,下令諸將不得縱兵、不得擅殺、聽候指示、不可擅自做主,以此宣揚天朝大國的威儀仁義,襄公之仁,不料反被高麗所乘。
隋軍一開始很順利,一路皆克,渡過遼河,在東岸殲滅高句麗軍萬餘人,直抵遼陽城下。
隋朝諸將怕被皇帝責殺,每次作戰事無巨細都一一稟報,結果導致命令批準遲緩,延誤戰機。
而守城的高麗人在情勢危急時總是詐降,等到隋軍一停止進攻就馬上修補城池,以至於隋軍頻戰頻失。
另一支由隋將公孫述率領的大軍為了趕路,棄糧輕裝前進,士兵走到半路就沒糧食吃,又饑又寒之下,竟還能一日七勝。
隋軍自恃驟勝,未等歇息整裝,就貿然東渡濟水,距平壤城三十裡因山為營。
可是平壤城堅池深,哪是那般容易攻克。
公孫述的士兵無糧,又凍又餓,隻好退師,結果高麗軍自後追擊,隋軍潰不成軍。
此後,隋軍其他各路相繼敗北,煬帝一征高麗以慘敗告終,隋軍損失30餘萬人。
613年,煬帝再次親征高麗,此次隋軍包圍遼陽城,晝夜不停地猛攻20餘日,遼陽岌岌可危。
此時,隋軍後方負責督運糧草的楊玄感突然叛亂,本來已經有望征服高麗的場帝不得不撤兵回國平亂,撤軍路上將軍資、器械等盡數丟棄。
就這樣,隋煬帝第二次征高麗半途而廢,無功而返。
614年,煬帝三征高麗,隋軍在卑沙城大敗高麗軍。
此時,高麗與隋接連三年的戰爭,國力早已不支,幾乎到了山窮水盡的地步,隻好向煬帝稱臣請和,並且送還了逃到高麗的楊玄感叛亂之叛將斛斯政。
煬帝也因疲於征服高麗,正愁沒有臺階可下,剛好借著高麗的投降舉動適時收兵,同時也挽回前兩次失敗之辱。
加之此時隋國早已因征高麗而怨聲載道,天下騷動,『群盜蜂起,不可勝數』,遂罷兵許和。
縱觀隋之三伐高麗,本都是勝券在握,卻兩次慘敗,原因在於隋煬帝好大喜功,急於證明自己的英明、偉大,可卻耐挫能力差,在失敗的打擊面前亂了方寸,造成近百萬生命的損失和帝國巨大財富的浪費,終於把國力消耗得近乎空竭。
雖然隋朝損失的人口對本國並沒有致命的影響,但百萬之師所需糧草、運輸之人力卻耗費繁多。
一時間引發了民間耕稼失時、官府侵逼、連年興兵無盡的兵役、徭役繁重等多重社會矛盾,間接導致隋末之變,乃至亡國。