伊吾王唐契背叛柔然投降北魏的事情被柔然所察觉,唐契于是率部下西去,想攻取被阚爽占据的高昌。阚爽派使节同时向沮渠无讳求救,表面上是愿意与沮渠无讳共同攻打唐契,实际上是想坐山观虎斗,让沮渠无讳与唐契互相攻打。
沮渠无讳留下侄子沮渠安周驻守鄯善国,自己率众直扑高昌,准备前往援救。但沮渠无讳还在路上的时候,柔然已经派大将阿若率军救援高昌,并杀死了唐契,唐契的弟弟唐和召集残余将士投奔到伊洛去了。
这时,沮渠安周正屯据在横截城,唐和顺势攻克了横截城,随后又攻克占据了高宁、白力,并派遣使者前往北魏请求归附。
沮渠无讳的军队到达高昌时,唐契已经战死,阚爽翻脸不认人,紧闭城门拒绝会见沮渠无讳。沮渠无讳可不是善茬,一怒之下,派部将卫兴奴夜袭高昌,血洗全城,阚爽算计人不成反而丢了城池,自己杀出条血路去投奔了柔然,沮渠无讳占据了高昌,派使者带着奏表到了建康请求归附,反正高昌距离江南有千里之遥,刘宋文帝大手一挥,慷慨地任命他为凉州刺史和河西王。
河西灭亡后,鄯善人发现自己的土地与北魏相邻,大为惊恐,都说:“如果允许北魏的使节到我们这里来,就会知道我们的虚实,我们会很快灭亡的。”
于是,他们将与北魏相通的道路全部封锁。北魏的使节来往只要经过这里,他们就抢劫。因此,北魏与西域隔绝了几年的时间,拓跋焘派万度归发动凉州以西的军队去攻打鄯善人。
万度归到达敦煌后,留下辎重,率领轻骑兵五千人向西神速渡过流沙,袭击鄯善部落,鄯善王真达反绑双臂出来投降,万度归留下部分军队驻守后,同真达回到了平城,西域之路再次开通,经历了六百余年的鄯善国,至此灭亡。
北凉灭亡后,拓跋焘看在北凉王沮渠牧健是自己妹夫,自己也娶了他妹妹的份上,仍然对他很礼遇。但好景不长,他的亲信向北魏朝廷告发,说他和北凉的遗民秘密来往,图谋反叛,还藏起了许多毒药,被他们偷偷杀掉的人前后有一百多人,有关部门搜查了沮渠牧健的家,得到了他藏匿的东西。
拓跋焘大怒之下,命令沮渠昭仪自杀,并诛灭了沮渠宗族,然后派崔浩去沮渠牧健家,让他在家里自杀,谥号为哀王。
当时在北魏民间传说着一种谣言“灭魏者吴”,匈奴别部的卢水胡人因不满北魏的严苛统治,在盖吴的领导下聚集在杏城反叛,各族胡人都争先恐后地前来响应,很快就聚集了部众十多万人。
盖吴派遣他的同伙赵绾来到刘宋朝廷,上疏请求归降,希望刘宋朝廷能出师河、陕,形成对北魏南北夹击的态势。
北魏将领拓跋纥率众讨伐,却战败而死。盖吴的兵卒越来越多,关中老百姓纷纷响应,都渡过渭水逃奔南山。
盖吴兵分三路,一路由白广平率领到新平去劫掠财物,安定的各族胡人群起响应;一路向东劫掠临晋以东的地区,从东面威逼长安;盖吴亲自率领一路向西攻取李润堡,直插渭北,准备进攻长安。
拓跋焘急忙征调高平镇的敕勒骑兵奔赴长安,又命令叔孙拔统领并、秦、雍三州的军队屯据渭水之北。
结果,白广平的军队被北魏将军章直击败,淹死在黄河中的有三万多人。盖吴的军队走到长安的时候,与北魏将军叔孙拔在渭水之北相遇,双方交战,结果被叔孙拔打得大败,斩首三万多人。
与此同时,河东蜀人薛永宗聚众响应盖吴,他们袭击了魏国在河东的牧场,夺取马匹,组建了一支三千余人的骑兵。
盖吴派人联系薛永宗,任命他为秦州刺史,薛永宗率军袭击闻喜县,由于闻喜县没有军队驻守,县令惊慌得不知如何是好,幸得本县人裴骏率领各乡豪族攻击,薛永宗才引兵败退。
关中局势大乱,拓跋焘亲自率军征讨,他命薛谨的儿子薛拔召集宗族乡亲,在黄河边上建造营垒,以此切断盖吴与薛永宗相联系的道路,又派拓跋处直率领二万骑兵讨伐薛永宗,乙拔率三万骑兵讨伐盖吴,寇提率一万骑兵讨伐白广平。
拓跋焘又下令从六个州中选出二万骁勇骑兵,派拓跋仁、拓跋那分别统率,分二路劫掠淮河、泗水以北的地方,迁徙青州、徐州的老百姓来充实河北地区。
拓跋焘率领军队来到东部的雍州,此地临近薛永宗的城堡,崔浩建议说:“薛永宗不知道陛下您亲自前来,他们的军心一定放纵松弛,现在正是北风又急又快的时候,我们应该趁此机会赶快攻打。”
拓跋焘采纳了他的意见,包围了薛永宗的营垒。薛永宗出来迎战,结果大败,他和家里人都投入汾水自杀,他的同族人薛安都在此之前据守弘农,听到这个消息后,放弃了弘农投奔了刘宋朝廷。
拓跋焘继续率军南去汾阴,大军渡过黄河,来到洛水桥,听说盖吴驻扎在长安北边,拓跋焘认为渭河以北没有粮食和青草,就打算渡河到渭河的南部,沿着渭河向西挺进。
拓跋焘问崔浩这个想法如何,崔浩回答说:“打蛇的人先打蛇头,头被击坏,尾巴就无法调动了。如今盖吴营地与我们相聚六十里,派轻骑前去攻打,一天就能到了,到达那里,就一定能击败盖吴。打败盖吴后,我们再南下长安也不过一天,多一天的辛苦并不会有什么损失。如果从渭河之南进发,盖吴就会从容地进入北山,我们一下子是平定不了他们的。”
拓跋焘没有按照崔浩说的去做,还是从渭河南岸向长安进发,几天后,军队到达戏水。盖吴军中众人得到消息,全部分散进入山中,北魏军队一无所获,拓跋焘为此非常后悔。
挫败的拓跋焘从长安返程,前往雍城,所过之处,只要遇到汉人、蛮夷与盖吴串通的一律诛杀。
盖吴又派使节前去刘宋上表,希望能够出师救援,这次他又失望了。宋文帝只是派遣使节赐给盖吴一百二十一个大印,让盖吴随时代替朝廷封赏官爵,并下诏派雍、梁二州出动军队驻扎在边境,以此作为盖吴的声援后盾。