公元439年五月十四日,北魏皇帝拓跋焘在平城(今山西省大同市)西郊集结兵马,准备西攻北凉。在出征之前,拓跋焘作了如下部署∶侍中、宜都王穆寿辅佐太子拓跋晃留守平城,大将军、长乐王嵇敬与辅国大将军、建宁王拓跋崇率二万人马驻屯漠南以防备柔然。拓跋焘又命公卿拟写文告,历数北凉国主、河西王沮渠牧犍十二大罪状。文告中还对沮渠牧键说道∶"如能亲率群臣呈献贡品,远远相迎,到马首前来谒拜,是上策。六军抵达后,再面缚舆榇,是次策。如果据守孤城,拒不悔悟,必将身死族灭,受到世间最重的惩罚。好好权衡,自求多福。"
六月十一日,拓跋焘亲率西征大军从平城出发,宜都王穆寿一直跟随相送到云中郡(今内蒙古和林格尔县)黄河岸边。拓跋焘即将西渡黄河,令穆寿就此停步不要再送。拓跋焘还对穆寿敕令道:"柔然可汗郁久闾吴提与沮渠牧犍一直结好,一旦听说朕率兵西讨沮渠牧犍,必将南下犯边。是故朕将强兵壮马留给卿,让卿能够好好地辅佐太子。秋收之后,卿要立即发兵前往漠南,埋伏在要害之处等待敌人到来。一定要等到敌人深入再攻击,方能攻无不克。凉州太远,朕不能援救卿,卿一定不要违背朕的话。"穆寿叩头接受拓跋焘的敕令。
拓跋焘大军渡过黄河,一路西进。七月七日,拓跋焘抵达上郡属国城(今陕西省榆林市北)。七月二十日,拓跋焘传令留下辎重,并将兵马分为前后两部∶抚军大将军永昌王拓跋健、尚书令刘絜与常山王拓跋素为前锋,兵分两路齐头并进;骠骑大将军乐平王拓跋不与太宰阳平王杜超为后继。拓跋焘还令故南凉王秃发侮檀之子平西将军源贺(到北魏后改姓源)为大军向导。拓跋焘向源贺询问攻取凉州的方略,源贺答道∶"姑臧(今甘肃省武威市)城外有四部鲜卑,都是臣祖父(秃发思复犍)的旧部,臣愿在大军之前,向四部鲜卑宣扬大魏国威,明示祸福,四部必定率部来归。外援臣服,然后再取姑臧这座孤城,易如反掌。"拓跋焘高兴地说道∶"甚好。"
八月二日,北魏西征兵马前锋永昌王拓跋健掳获北凉二十多万头牲畜。河西王沮渠牧犍这才得知北魏兵马来袭,大惊道∶"怎么会发生这样的事?"左丞姚定国献计认为,不要出城迎战,而派使向北方的柔然求救。沮渠牧犍接纳姚定国之计,,连忙派使前往柔然求救。然而,沮渠牧犍还是派其弟征南大将军沮渠董来率一万多兵马到姑臧城南迎战。这一万多兵马哪里敢战,刚一出城,尚未交锋,便四散而逃。北魏前锋尚书令刘絜听信卜卦者之言,认为时辰不吉,没有下令追击沮渠董来,沮渠董来因而得以逃回姑臧城中。拓跋焘获报此事,非常震怒。
八月四日,拓跋焘率领的主力大军抵达姑臧城下。拓跋焘先派使前往姑臧城中,责令沮渠牧犍出城投降。沮渠牧犍相信柔然定会南下袭扰北魏边境,认为那时拓跋焘将会东还,因而拒不出降。沮渠牧犍传令婴城固守,但其侄子沮渠祖却翻越城墙向拓跋焘投降。沮渠祖告诉拓跋焘,城中并无可战兵马,沮渠牧犍正在等待柔然来援。拓跋焘于是下定决心,分出一部兵马围攻姑臧。这时源贺也招抚了四部鲜卑共三万多落部众,拓跋焘于是更无后顾之忧,传令专心围攻姑臧城。
拓跋焘的大军围困姑臧一月有余,河西王沮渠牧犍仍不愿纳降。九月二十五日,沮渠牧犍的侄子沮渠万年率所部兵马向北魏投降,姑臧立刻崩溃。沮渠牧犍知道无法再守姑臧,只好带领五千文武官员面缚请降。拓跋焘为其解开绳索,以礼相待。姑臧城中二十多万户百姓以及仓库中无数珍宝都归北魏所有。拓跋焘占领姑臧后,再派张掖王秃发保周、龙骧将军穆罴、安远将军源贺向凉州境内的胡人部族出兵,又有数十万各类胡族归降。
此时,凉州境内仍有四个郡城没有被北魏占领,这四个郡城是酒泉、张掖、乐都与敦煌。
拓跋焘派镇南将军奚眷攻打张掖,镇北将军封沓攻打乐都。镇守张掖的沮渠宜得焚烧仓库,向西投奔镇守酒泉的沮渠无讳。镇守乐都的沮渠安周向南逃往吐谷浑,封沓掳掠数千户百姓而回。奚眷占领张掖后,率部继续西进攻打酒泉。沮渠无讳与沮渠宜得又放弃酒泉,带领残余部众前往敦煌投靠沮渠唐儿。沮渠无讳后来反攻已被北魏占领的酒泉、张掖等郡,直到被北魏抚军大将军、永昌王拓跋健击败。再后来,沮渠无讳向西撤退占领高昌(今新疆吐鲁番市东南),并在高昌建立政权,史称高昌北凉。
需要说明的是,在秦州的南部以及西边仍然活跃着两个地方小政权,一个是后仇池国(今甘肃省西和县西),一个是吐谷浑。吐谷浑可汗慕容慕利延听闻拓跋焘攻克北凉,非常害怕,带领部众向西逃避,一直越过沙漠。拓跋焘因其兄慕容慕瓒俘掳赫连昌有功,便派使前往安抚,慕利延才敢返回故地。而氏王杨难当当时正带领数万人马袭击北魏所属的上邦(今甘肃省天水市),秦州境内响应的人很多。上邦镇将拓跋意头派吕罗汉率一千多精骑出城迎战,所向披靡。吕罗汉一连杀死杨难当左右骑兵八人,杨难当大惊失色。不久拓跋焘颁诏叱责杨难当,杨难当便率部返回仇池,也不再称大秦王,而仍称武都王。
十月一日,拓跋焘命乐平王拓跋丕与征西将军贺多罗镇守姑臧。当日,拓跋焘带着故北凉河西王沮渠牧犍与族人以及北凉臣民三万户一同前往平城。十二月二十三日,拓跋焘回到平城。拓跋焘仍然把沮渠牧犍当作妹婿,仍然任命沮渠牧犍为征西大将军,封为河西王。沮渠牧犍的母亲去世后,拓跋焘还用太妃之礼安葬,又令三十户百姓为沮渠蒙逊看守坟冢。
随着沮渠牧犍的出降,立国四十二年多的北凉宣告灭亡,前后共历三位君王∶段业(在位四年)、沮渠蒙逊(在位三十二年)与沮渠牧犍(在位六年多)。段业在位期间,北凉还比较弱小,其本人还受制于沮渠蒙逊兄弟。沮渠蒙逊在位期间,北凉开始慢慢强盛,先夺取南凉北部领地,后消灭西凉而统一凉州,其领地达到极盛,然而其国力一直弱于南边的西秦,多年与西秦交战,败多胜少。沮渠牧犍在位期间,由于北魏用时四年消灭北燕而使北凉暂时得以苟延残喘,但最终仍不免走向灭亡。时间的车轮转到439年九月时,在华夏大地的北方先后出现的五胡十六国全部消亡,统一北方的北魏与南朝宋以黄河为界而对峙。