高句丽地跨鸭绿江两岸,位于今中国辽宁东部、吉林中部和朝鲜北部。辽宁东部、吉林中部古称辽东,很早即入中国版图,后被高句丽占据。开皇十八年(598年),高句丽又攻隋的辽西。杨坚派大军三十万攻高句丽,后因士卒多病,高句丽亦遣使谢罪,遂罢兵。
杨广即位后,又三次大举进攻高句丽。大业八年(612年),隋炀帝第一次进攻高句丽。征调士卒一百一十三万余,陆军集中于涿郡(今北京),水军集中于东莱(今山东莱州)。另调民夫二百万,以运送衣甲、粮食等。造海船的民工日夜站在水中,皮肤溃烂,腰以下生蛆,死者甚众。
高句丽坚守各座城池,隋军无法攻下,右翊卫大将军来护儿率领江、淮水军,战舰绵延数百里,走海路进攻。来护儿选拔精甲四万,到达平壤城外,中埋伏而惨败,士卒逃回的不过数千人。开战前,杨广下令隋将不得擅自作出任何有关作战决定,必须先向他报告后再听从命令。这使得隋军在战场上很被动。隋将在做每个决定的时候都要先派人驰报远在后方的隋炀帝,这就延误了军情。高句丽的军队也因此有充足的时间进行重整和反击。就这样5个月过去了,杨广没拿下辽东城。三十万五千隋朝陆军渡辽攻高句丽,也遭到惨败,逃回的只有二千七百人,资储器械巨万计,也丢失殆尽。
隋军虽曾攻至平壤附近,最后却大败而还。大业九年(613年),第二次进攻高句丽。正当双方相持不下时,礼部尚书杨玄感起兵叛隋,隋炀帝仓皇撤军。大业十年(614年),第三次进攻高句丽。隋炀帝因国内农民起义已成燎原之势而不敢久战,高句丽也疲于战争而遣使请降,杨广就此撤军。
进攻高句丽的战争,先后动用人力数百万,征调财物无数,大量士兵、民夫死于战场和劳役,由于农村中极度缺乏劳力和耕畜,大量土地荒芜,社会经济受到严重破坏,人民难以生活下去,引发了大规模隋末农民起义。