李建成决定前往仁智宫。还没有走完六十里的路程,李建成便将所属官员全部留下,只带领十多个人骑马前去进见高祖,向父皇伏地叩头,承认罪责,身体猛然用力,自己摔了出去,几乎晕死过去。高祖的怒气仍然没有消除。当天夜里,高祖将他囚禁在帐篷里,给他麦饭充饥,让殿中监陈福看守着他,派遣司农卿宇文颖速去传召杨文干。因李元吉与宇文颖交好,便让宇文颖告诉杨文干起兵,于是杨文干起兵造反。李渊派遣左武卫将军钱九陇和灵州都督杨师道攻击杨文干。注:参考《新唐书李建成传》
李渊传秦王李世民商议此事,李世民说:“杨文干这小子竟敢做这种狂妄叛逆的勾当,想来他幕府的僚属应当已经将他擒获并杀掉了。如果不是这样,就应当派遣一员将领去讨伐他。”高祖说:“不能这样。杨文干的事情关连着李建成,恐怕响应他的人为数众多。你最好亲自前往,回来以后,我便将你立为太子。我不愿意效法隋文帝去诛杀自己的儿子,届时就把李建成降为蜀王。蜀中兵力薄弱,如果以后他能够侍奉你,你应该保全他的性命;如果他不肯侍奉你,你要捉拿他也容易啊。”注:参考《新唐书李建成传》
李世民带领军队出发平叛后,李元吉与后宫嫔妃轮番替李建成求情,中书令封德彝又在外朝设法解救李建成。于是,高祖改变了初衷,又让李建成回长安留守。高祖只以他致使兄弟关系不和睦的过错而责备他,将罪责推给了东宫幕僚太子中允王圭、左卫率韦挺和天策上将府兵曹参军杜淹,将他们一并流放到了巂州。注:参考《新唐书李建成传》
武德七年(624年)7月21日,杨文干攻陷宁州,驱赶劫掠官吏与百姓出城,占据了百家堡。秦王世民的军队来到宁州以后,杨文干叛军被击溃。杨文干被自己的部下杀死,他的头颅被传送到长安。宇文颖被李世民所抓,李渊责问宇文颖为何谋反,而后将宇文颖杀了。在《新唐书·卷七十九》中有这样的记载::故豫文干谋。事败,帝责曰:“朕以文干叛,故遣卿,乃同逆邪?“颖无以对,斩之。
有人劝高祖说:“突厥之所以屡次侵犯关中地区,是由于我们的人口与财富都集中在长安的缘故。如果烧毁长安,不在这里定都,那么胡人的侵犯便会自然平息下来了。”高祖认为有道理,便派遣中书侍郎宇文士及越过终南山,来到樊州、邓州一带,巡视可以居留的地方,准备迁都到那里去。注:在《资治通鉴唐纪七》记载:或说上曰:“突厥所以屡寇关中者,以子女玉帛皆在长安故也。若焚长安而不都,则胡寇自息矣。”上以为然,遣中书侍郎宇文士及逾南山至樊、邓,行可居之地,将徒都之。
太子李建成、齐王李元吉和裴寂都赞成这一策略,萧瑀等人虽然知道不应当如此,却不敢谏阻。秦王世民挺身而出,劝谏道:“北方少数民族为祸中原的情况自古就有。陛下凭着圣明英武,创建新王朝,安定中夏,拥有百万精兵,所向无敌,怎么能因有胡人搅扰边境,便连忙迁都来躲避他们,使举国臣民感到羞辱,让后世来讥笑呢?那霍去病不过是汉朝的一员将领,尚且决心消灭匈奴,何况儿臣还愧居藩王之位呢!希望陛下给我几年时间,请让我把绳索套在颉利的脖子上,将他逮到宫阙之下。如果到时候不成功,再迁都也为时不晚。”高祖说:“说得好。”李建成却说:“当年樊哙打算率领十万兵马在匈奴人中间纵横驰骋结果失败了,秦王的话该不会是和樊哙的相似吧!”李世民说:“面对的情况各有区别,用兵的方法也不相同。樊哙那小子有什么值得称道的呢!不超过十年,我肯定能够将漠北地区平定下来,并不是凭空妄言啊!”于是,高祖不再迁都。注:《资治通鉴唐纪七》中有这样一段记录,曰:在太子建成、齐王元吉、裴寂皆赞成其策,萧瑀等虽知其不可,而不敢谏。秦王世民谏曰:“戎狄为患,自古有之。陛下以圣武龙兴,光宅中夏,精兵百万,所征无敌,奈何以胡寇扰边,遽迁都以避之,贻四海之羞,为百世之笑乎!彼霍去病汉廷一将,犹志灭匈奴;况臣忝备籓维,愿假数年之期,请系颉利之颈,致之阙下。若其不效,迁都未晚。”上曰:“善。”建成曰:“昔樊哙欲以十万众横行匈奴中,秦王之言得无似之!”世民曰:“形势各异,用兵不同,樊哙小竖,何足道乎!不出十年,必定漠北,非敢虚言也!”上乃止。