北魏曾多次与柔然互相征伐。一百年前(424年),北魏创立之初,柔然可汗趁着北魏明元帝拓跋嗣驾崩不久的机会,率领六万骑兵进攻云中。新继位的北魏太武帝拓跋焘力排众议,亲自率两万骑兵急赴云中救援。柔然仰仗人多,把拓跋焘的部队前后包围了五十多重,打算一举干掉这位当时还不到十六岁的小皇帝,彻底打败北魏。
但拓跋焘如果这么容易就被干掉,就不会有后来北上驱敌万里,南下饮马长江,英图武略事驾前古的超级评价了。他在绝地之中表现出了超常的坚定,亲冒矢石与士卒们并肩作战,左右死伤相继,拓跋焘依旧神色自若。在少年皇帝的鼓舞下,北魏部队士气高涨,击退了柔然发动的多次进攻,射杀柔然大将于陟斤。拓跋焘趁势率军大纵深穿插突击,柔然最终大败而逃。第二年(425年),拓跋焘五路并进征伐柔然,柔然知道打不过,只好继续向北方撤退。
拓跋焘为了摆脱被刘宋和柔然南北夹击的被动局面,以及雪洗云中被围的耻辱,决心先倾全力彻底干掉柔然。429年四月,拓跋焘亲自率军越过大漠,进攻柔然王庭,最终大获成功,缴获军马无数,前后三十多万柔然军民投降了北魏。
但是柔然并未被灭亡,此后经过三十多年的蛰伏发展,又逐渐恢复了元气,开始再次频频侵扰北魏及边境诸国,460年吞并高昌,470年进攻于阗,472年进攻敦煌。北魏一看这个刺头邻居又开始不安生了,需要再次修理一下,于是又先后九次出兵征讨。柔然招架不住,只好主动服软,派人过来跟北魏说总打仗多不好玩啊,要不咱们和个亲,还是当好邻居吧。当时北魏孝文帝拓跋宏刚即位,冯太后代为执政。当时保持政局稳定更加重要,既然柔然主动上门认错,就同意了和亲请求,之后北方维持了一段时间的和平。
在同柔然的战斗中,北方六镇作为前线基地,曾经发挥过重要作用。但当柔然势力变弱,边患压力减少的时候,六镇的重要性也开始逐渐下降。
494年,孝文帝拓跋宏决定将首都由平城迁到洛阳。这次迁都在客观上巩固了北魏政权的统治,但对六镇