路,粮食已将吃尽。
高句丽派大臣乙支文德到隋军营中诈降,实际想观察虚实。于仲文事先奉有密旨:“如果遇到高元及乙支文德来,一定要擒住他们。”于仲文准备拘捕乙支文德,尚书右丞刘士龙作为慰抚使,坚决制止。于仲文于是放乙支文德回去,随即又后悔,派人骗乙支文德说:“还有话要说,可以再来。”乙支文德头也不回,渡过鸭绿水离去。于仲文与宇文述等人放走了乙支文德后,内心不安,宇文述因为粮食将尽,想退回。于仲文建议用精锐部队追击乙支文德,可以立功。宇文述坚决制止,于仲文发怒说:“将军仗着十万军队,不能打败小贼,有什么脸面去见皇上!况且我这次出行,本来就知道不会成功,为什么呢?古代良将能成功的原因,是军中的事情,决断在于一人。现在人人各怀异心,凭什么战胜敌人!”当时炀帝因为于仲文有谋略,命令各军向他咨询禀报接受调度,所以于仲文这样说。因此宇文述等人不得已而听从,与各将领渡鸭绿水追击乙支文德。乙支文德见宇文述的士兵面带饥色,故意想拖垮他们,每次交战都退走。宇文述一天之中,七战七胜,既依仗接连胜利,又迫于众人的议论,于是继续进军,向东渡过萨水,距离平壤城三十里,依山扎营。乙支文德又派使者诈降,向宇文述请求说:“如果贵军撤退,我将送高元到皇上行宫朝见。”宇文述看到士兵疲惫,不能再战,又认为平壤城险峻坚固,估计难以迅速攻克,于是顺势借其诈降而退兵。宇文述等人列成方阵撤退,高句丽军从四面袭击,宇文述等人边战边行。秋季,七月,壬寅日,到达萨水,军队刚渡到一半,高句丽军从后面攻击隋军后军,左屯卫将军辛世雄战死。于是各军全部溃败,无法制止。将士奔逃,一天一夜跑到鸭绿水边,行军四百五十里。将军天水人王仁恭殿后,攻击高句丽追兵,击退了他们。来护儿听说宇文述等人兵败,也率军退回。只有卫文昇一军独自保全。
当初,九路大军渡过辽水,共三十万五千人,等到返回辽东城时,只剩下二千七百人,物资储备、器械数以巨万计,全部损失殆尽。炀帝大怒,将宇文述等人锁拿关押。癸卯日,率军返回。
当初,百济王扶余璋派使者请求讨伐高句丽,炀帝让他侦察高句丽动静,扶余璋暗中与高句丽秘密勾结。隋军将要出发时,扶余璋派他的大臣国智牟来请示出师日期。炀帝非常高兴,厚加赏赐,派尚书起部郎席律到百济,告知会师日期。等到隋军渡过辽水,百济也在边境严密布防,声称帮助隋朝,实际上采取骑墙态度。
这次行动,只在辽水以西攻占了高句丽的武厉逻城,设置辽东郡及通定镇而已。八月,敕令将黎阳、洛阳、太原等粮仓的谷物运往望海顿,派民部尚书樊子盖留守涿郡。九月,庚寅日,车驾到达东都。
冬季,十月,甲寅日,工部尚书宇文恺去世。
十一月,己卯日,将宗室女封为华容公主,嫁给高昌王。
宇文述一向被炀帝宠信,而且他的儿子宇文士及娶了炀帝的女儿南阳公主,所以炀帝不忍心杀他。甲申日,将宇文述与于仲文等人都除名为民,处斩刘士龙以向天下谢罪。萨水兵败时,高句丽在白石山追击包围薛世雄,薛世雄奋力攻击,击破敌军,因此只有他被免官。任命卫文昇为金紫光禄大夫。众将领都将罪责推给于仲文,炀帝释放了众将领后,唯独囚禁于仲文。于仲文忧愤,发病病重,于是释放了他,死在家里。
这一年,大旱,瘟疫流行,崤山以东地区尤其严重。
张衡被罢黜放逐后,炀帝常常命令亲人窥探张衡的所作所为。炀帝从辽东返回后,张衡的妾告发张衡心怀怨恨,诽谤朝廷政事,炀帝下诏赐他在家中自尽。张衡临死时大声说:“我替人做了什么样的事,还指望活得长久吗!”监刑的人堵住耳朵,催促将他杀死。