拓跋圭从燕臣中选之一些有才能的汉人如代郡太守广川贾闰,贾闰从弟骠骑长史、昌黎太守贾彝,太史郎、辽东晁崇等留用外,将其余被俘的人悉数发给衣服粮食放回,以招怀中州之人。时中部大人王建说:“燕众强盛,今倾国而来,我幸而大捷,不如悉杀之,则其国空虚,取之为易。且获寇而纵之,无乃不可乎”(《资治通鉴·卷第一百八》)!拓跋圭认为有理,将余众全部坑杀。
对于拓跋圭的此举,后世褒贬不一。从当时来说,坑杀燕军是有一定道理的,因为当时的燕人都是反覆无常叛的,即使对他再好,也不能得到燕人的心,符坚就是个很好的例子。但此举的负面影响是加强了燕人反抗的决心,为其将来进取中原带来了很大的困难。
参合陂之战,时十六国时期一次著名的战役,拓跋圭在作战中显示了杰出的军事才能,在战前正确判断敌我态势,采取示弱远避,待疲而打的后发制人策略;采取心理战术,动摇、瓦解敌人军心;趁后燕军撤退时勇猛追击,奋力拼杀,终获全胜。从此改变了两国力量对比,后燕日渐衰落,北魏势力则进入中原。
十二月,慕容宝回到中山,耻于参合陂之败,请求父亲再度发兵击魏。慕容德也对慕容垂说:“虏以参合之捷,有轻太子之心,宜及陛下神略以服之,不然,将为后患”(《资治通鉴·卷第一百八》)。慕容垂乃部署兵力准备大举攻魏。
登国十一年(396年)三月,慕容垂留范阳王慕容德镇守中山(今河北定州),亲自率军秘密出发,越过青岭(今河北易县西南),经天门,凿山开道,出北魏不意,直指云中(今内蒙古托克托)。北魏阵留公拓跋虔率部落3万余家镇守平城(今山西大同东北)。慕容垂率军至猎岭(在今山西代县东北夏屋山),派辽西王慕容农、高阳王慕容隆为前锋袭击平城。拓跋虔不备,燕军攻到平城才发现,率军出战,兵败被杀。燕军攻占平城,收编其部落。北魏诸部听说拓跋虔战死,各怀贰心,拓跋圭也一时不知所从。这时慕容垂经过参合陂,见积骸如山,为死亡将士设祭,后燕军哭声震动山谷。慕容垂惭愤吐血,病发,住在平城,不久病重,遂还师,魏国也逃此一难。
四月,燕军至上谷沮阳(今河北怀来),慕容垂病死,慕容宝即位。
燕军退师后,拓跋圭旋即光复平城。得知燕国易主,他决计进击中原。六月,拓跋圭派王建取广宁,杀太守独孤部首领刘亢泥,徙其部落于平城。同月,魏军取燕郡上谷。七月,拓跋圭改元皇始。
八月,拓跋圭率步骑40余万大举攻燕,南出马邑(今山西朔州),越句注山,遣左将军李栗率5万骑兵为前驱,派将军封真等从东道出军都关(今居庸关),袭燕幽州(治今北京市)。
九月,南进魏军在晋阳城外大败后燕名将、并州牧慕容农,攻克晋阳(并州治所,今太原西南),慕容农只身逃归中山。魏出军都之步骑亦攻克渔阳(今北京市密云西)。拓跋圭取并州后,继续率军东进,直指后燕国都中山。燕王慕容宝修城贮粮坚守中山,派慕容农出兵安喜(今河北定州东南),作为警戒。一切军务,皆委于赵王慕容麟。