且說皇帝楊廣北巡至突厥啟民可汗大營,遇到高麗的使者。這高麗本是箕子所封之地,漢、晉時皆為所轄的郡縣,他便命使者轉告高麗國王高元速來朝見,不然將率大軍巡遊高麗國土。高元聞報甚為恐懼,一直未前來,皇帝楊廣十分震怒。於是一場征伐高麗的全麵戰爭就這樣爆發了,理由是高麗不遵臣禮為由。這是大隋自打建立以來最大規模的一場戰爭,在這之前,先皇楊堅屢屢攻打高麗都毫無起色。最後不了了之。這幾乎成為了大隋的一塊頑疾。
皇帝楊廣開始募集軍隊。募集的軍隊被集中在涿郡。八年正月,應征士兵全部集中於涿郡,據說共一百一十萬人,號稱兩百萬,皇帝楊廣將其分為左、右十二路大軍。初三,第1軍出發,以後每日發一軍,前後相距40裏,經過40天才出發完畢。各軍首尾相接,鼓角相聞,旌旗相連960裏,煬帝的禦營最後出發,又連綿80裏,史稱“近古出師之盛,未之有也”。
起初,高句麗得到一些緩衝地域。由於這些地域不適於和隋這麼大規模的軍隊進行麵對麵的交鋒,高句麗嬰陽王將軍隊撤到遼水一帶。天時地利,那年,遼河水比往常提前好久就開始解凍了。當皇帝楊廣到達的時候,遼河水已全部融化。他毫不氣餒,下令在遼河上修建了3座橋梁。不過皇帝楊廣所修的橋還沒修到對岸,高句麗就對隋軍發動了進攻,並有效地擊退了他的第一次進攻。不過最終將橋修好,隋軍過橋包圍了遼東城。
開戰前,皇帝楊廣下令隋將不得擅自作出任何有關作戰決定,必須先向他報告後再聽從命令。這使得隋軍在戰場上很被動。隋將在做每個決定的時候都要先派人馳報遠在後方的皇帝楊廣,這就延誤了軍情。高句麗的軍隊也因此有充足的時間進行重整和反擊。就這樣5個月過去了,皇帝楊廣沒拿下遼東城。於是,他感到需要改變策略。
皇帝楊廣的新戰略是在同高句麗在遼東周旋的同時,派海陸軍攻打高句麗的首都平壤。30多萬陸軍和20萬海軍構成的先遣隊就這樣出發了。
隋的海軍先於陸軍到達了大同江。發現隋的陸軍沒有到達,嬰陽王派出了一小批軍隊與入侵的隋朝軍隊交戰。簡短的交鋒後,高句麗的軍隊假裝被擊敗並向城裏撤退。隋朝軍隊將領以為立功的大好時機已到來,帶領10萬軍隊開始攻平壤。
當隋朝軍隊來到平壤的外圍城堡時,發現大門敞開,牆上也無人把守。進入城堡後,發現地上放著錢財和武器。為了謹慎起見,隋朝軍隊將領下令禁止掠奪。當隋朝軍隊來到一個寺廟後,遭到了高句麗的伏擊。不過高句麗的軍隊並沒有取勝,然後就撤逃了。這次隋朝軍隊將領真的以為高句麗不行了,於是開始掠奪外圍城堡。
正當隋朝軍隊掠奪之時,一支由幾千人組成的高句麗先遣部隊對隋朝軍隊進行了伏擊。毫無防備的隋朝軍隊一時慌了手腳,不知所措,並開始向海邊撤退。據說10萬隋朝軍隊僅有幾千人成功退出。第一次單獨行動失敗後,隋朝軍隊的將領決定還是等隋朝部隊的陸軍到達後再圍攻平壤。
然而,皇帝楊廣派出的陸軍在路上也出了問題。在隋國內行軍,隋軍後勤很有保障。但一旦進入高句麗的國土,隋朝軍隊的後勤供應就會遭到高句麗的伏擊。為了解決這個問題,皇帝楊廣下令每個士兵都要自己攜帶食物。不過這大大加重了士兵的負擔。許多士兵為了減負,扔下所帶的食物。等隋朝軍隊到達鴨綠江後,物資已嚴重缺乏。