起初,裴矩因突厥始毕可汗部众逐渐强盛,献策分散他的势力,想把宗室女嫁给始毕的弟弟叱吉设,封他为南面可汗;叱吉设不敢接受,始毕可汗听说后渐渐怨恨。突厥大臣史蜀胡悉很有谋略,被始毕可汗宠信,裴矩假装和他贸易,引诱到马邑(今山西朔州,隋炀帝改朔州为马邑郡),杀了他。派使者告诉始毕可汗说:“史蜀胡悉背叛可汗来投降,我已经为你杀了他。”始毕可汗知道实情,从此不再入朝。
戊辰日,始毕可汗率领几十万骑兵谋划袭击隋炀帝的车驾,义成公主先派使者报告变故。壬申日,隋炀帝的车驾驰入雁门(今山西代县,胡三省注:《隋志》记载雁门郡,后周置肆州,开皇五年改代州,隋炀帝改雁门郡),齐王杨暕率后军保卫崞县(今山西原平北,胡三省注:崞是汉县,后魏置石城县,开皇十年改平寇,大业初年改崞县,属雁门郡)。癸酉日,突厥包围雁门,上下恐慌,拆百姓房屋作为防守工具,城中军民十五万人,粮食仅够支撑二十天,雁门四十一城,突厥攻克三十九座,只有雁门、崞县没攻下。突厥猛攻雁门,箭射到隋炀帝面前;隋炀帝非常恐惧,抱着赵王杨杲哭泣,眼睛都哭肿了。
左卫大将军宇文述劝隋炀帝挑选几千精锐骑兵突围,纳言苏威说:“守城我们还有余力,轻骑作战是他们的长处,陛下是万乘之主,怎能轻易出动!”民部尚书樊子盖说:“陛下冒着危险侥幸突围,一旦狼狈,后悔莫及!不如占据坚固城池挫其锐气,坐等征调四方军队救援。陛下亲自安抚士兵,宣告不再征伐辽东,重赏有功者,必定人人奋勇,还怕不能成功!”内史侍郎萧瑀认为:“突厥的习俗,可贺敦(突厥可汗的妻子)参与军事谋划;而且义成公主以皇帝女儿的身份嫁给外族,必定依仗大国的援助。如果派一人告诉她,即使没用,也没什么损失。另外,将士们担心陛下免除突厥之患后,又去征伐高句丽,如果发布明确诏令,宣布赦免高句丽、专门讨伐突厥,那么众心安定,人自为战。”萧瑀是皇后的弟弟。虞世基也劝隋炀帝重设奖赏标准,下诏停止辽东之役。隋炀帝听从了。
隋炀帝亲自巡视将士,对他们说:“努力打击贼人!如果能保全雁门,凡是在战场的,不用担心富贵,一定不让官吏耍弄笔墨破坏你们的功劳。”于是下令:“守城有功的,没官的直接授六品官,赐物一百段;有官的依次升级。”使者慰问,在路上络绎不绝,于是众人都踊跃作战,日夜抵抗,死伤很多。
甲申日,下诏天下招募士兵,郡守县令争相赴难,李渊的儿子李世民,十六岁,应募隶属于屯卫将军云定兴,劝云定兴多带旗帜战鼓作为疑兵,说:“始毕可汗敢发兵围攻天子,必定认为我们仓促不能救援。应当白天让旌旗连绵几十里,夜里让钲鼓呼应,敌人必定认为援兵大批到来,望风而逃。否则,敌众我寡,如果他们全军来战,我们必定不能支撑。”云定兴听从了。
隋炀帝派密使向义成公主求救,义成公主派使者告诉始毕可汗说:“北边有紧急情况。”东都和各郡援兵也到忻口(今山西忻州北,胡三省注:《九域志》记载忻州秀容县有忻口塞。《隋志》秀容属楼烦郡。杜佑说隋置忻州,因忻口得名)。九月,甲辰日,始毕可汗解围离去。隋炀帝派人出去侦察,山谷都空了,没有胡人的骑兵,于是派两千骑兵追击,到马邑,俘获突厥两千多老弱士兵后返回。
丁未日,隋炀帝的车驾回到太原(今山西太原,隋炀帝改并州为太原郡)。苏威对隋炀帝说:“现在盗贼不止,兵马疲惫,希望陛下尽快返回西京,巩固根本,为国家考虑。”隋炀帝起初同意。宇文述说:“随从官员的妻子儿女多在东都,应该顺路到洛阳,从潼关入关。”隋炀帝听从了他的建议。
冬季,十月,壬戌日,隋炀帝到达东都(胡三省注:《略记》说九月辛未日,隋炀帝进入东都,这里依从《隋帝纪》)。他环视街道,对侍臣说:“还有很多人在啊。”意思是从前平定杨玄感时杀人还太少。苏威追论说奖赏标准太重,应该斟酌调整,樊子盖坚决请求,认为不应失信,隋炀帝说:“你想收买人心吗!”樊子盖害怕,不敢再说话。隋炀帝生性吝啬官爵赏赐,当初平定杨玄感时,应授勋的人很多,于是新设置军事品级:建节尉为正六品,以下依次为奋武、宣惠、绥德、怀仁、秉义、奉诚、立信等尉,每级降一阶。守卫雁门的将士一万七千人,得到勋位的只有一千五百人,都按照平定杨玄感的标准,一战得第一勋的升一阶,之前没有军职的只授立信尉,三战得第一勋的到秉义尉,在战场而无勋的四战升一阶,也没有赏赐。恰逢又商议讨伐高句丽,因此将士无不怨恨。
起初,萧瑀因为是外戚且有才干品行(“才行”指才能和品行),曾在东宫侍奉隋炀帝,多次升