北魏王朝经拓跋圭、嗣父子两代的经营,尽取黄河以北山西、河北之地,隔河与南朝刘宋政权相峙。处于上升阶段的拓跋氏雄心勃勃,力图统一北方,进击南朝。然而整个北方地区的形势仍然十分复杂,赫连夏称雄关中,匈奴别种卢水胡建立的北凉盘踞河西,鲜卑乞伏氏建立的西秦割占陇右,辽东则有冯跋建立的后燕,北方的柔然更是不断犯界侵扰,在拓跋氏统一北方的道路上仍然面临着许多强硬的对手。同时,南方的刘宋政权亦虎视眈眈,公元424年,刘义隆即位,是为宋文帝。他一面改革内政,整顿吏治,督课农桑,在南方出现了一个社会安定,经济发展的小康局面,史称“元嘉之治”。一面积极筹划北伐,力图收复武帝刘裕北伐时所丢失的洛阳、虎牢(今河南荥阳县汜水镇)、滑台(今河南滑县东)等河南之地,形成对北魏王朝的又一个威胁。因此,拓跋焘即位后,戎车屡动,频频征讨,开始了一系列的军事活动。
拓跋焘的第一个目标便是柔然。柔然,《魏书》称蠕蠕,是鲜卑族的一个分支,约在五世纪初,建立起一个东起外兴安岭,西越阿尔泰山,南到大沙漠,北包贝加尔湖的强大游牧国家,成为拓跋族在北方的一个劲敌。北魏建立之初,柔然便不断侵扰,蠕蠕犯塞”的记载史不绝书。始光元年(424),拓跋焘即位不久,柔然汉纥升盖可汗大檀就率领六万骑兵攻入云中(今内蒙古托克托东北),杀掠吏民,抢劫财物,攻陷盛乐(今内蒙古和林格尔西北)故都。拓跋焘率轻骑讨之,亦陷入重围,全赖殊死拼战,才使柔然兵退。柔然的侵扰牵制了北魏力量,使其无力进一步征服其他割据政权,更无力南进,与刘宋王朝争强。拓跋焘也清楚地认识到这一点,提出如果不先征服柔然,就会腹背受敌,陷于困境。他不顾太后和众多大臣的反对,在崔浩等支持下,决定北征柔然。
始光元年(424)九月,拓跋焘大集士卒,治兵于东郊,准备北征。十二月,拓跋焘亲征,以平阳王长孙翰率军出参合(今内蒙古凉城东北),自领一军进屯柞山(今内蒙古和林格尔境内),与阿伏干率领的柔然骑兵相遇,斩首数千,获马万余匹,大胜而归。明年十月,拓跋焘再次治兵于西郊,大举北伐,东西五道并进,大军至漠南,舍辎重,轻骑带十五日粮越大沙漠进攻,柔然可汗大檀惊慌失措,率众北遁。这两次北伐虽然并没有使柔然受到致命打击,但使得柔然对北魏的侵扰有所缓和。
始光二年(425),夏主赫连勃勃死,子昌继位。先是,赫连勃勃立太子赫连璝,后欲废璝而立幼子酒泉公赫连伦,璝于是攻杀伦,三子太原公昌又率兵攻杀璝,勃勃即以昌为太子,及勃勃死,昌遂得继位。拓跋焘闻知勃勃诸子相攻,关中大乱,遂乘机西伐。始光三年(426)九月,以司空奚斤领一军袭蒲坂(今山西永济县东),宋兵将军周几领一军袭陕城(今河南陕县西),进逼关中重镇长安。十月,亲领大军奔袭统万(今内蒙古乌审旗南),行至君子津(今内蒙古清水河县西北九十公里黄河处),天气暴寒,河水冰冻,拓跋焘遂帅轻骑二万从冰上渡河,兵至黑水(今陕西横山西北长城外无定河北岸的支流淖泥河),离统万城仅三十余里,正是冬至日,赫连昌在宫中大宴群臣,突闻消息,上下惊恐。赫连昌匆促领兵迎战,大败而退,城门未及关闭,魏军乘势攻入西门。赫连昌退入宫内,紧闭大门,拓跋焘见一时难以攻下,遂于第二天分兵四掠,获牛马十余万头,徙民户万余家而归。与此同时,另两路魏军亦先后占领弘农(今河南灵宝北)、蒲坂、长安。
始光四年(427)春,赫连昌遣其弟赫连定领兵二万向长安,力图夺回这一关中重镇,魏兵固守,双方相持于长安城郊。拓跋焘闻报后,遂伐木阴山,大造攻城器具,准备再度伐夏。五月,分部诸将,以司徒长孙翰、廷尉长孙道生、宗正娥清等领骑兵三万为前都,常山王拓跋素、太仆丘堆、将军元太毗等领步兵三万为后援,南阳王优真、执金吾桓贷、将军姚黄眉等领步兵三万部送攻具,将军贺多罗领精骑三千为前候。大军到拔邻山(在黑水东北,今内蒙古鄂尔多斯境内),魏军舍弃辎重,拓跋焘领轻骑三万奔袭,至于黑水,魏军在周围山谷分兵设伏,拓跋焘领一军直趋统万城。赫连昌本欲坚守,待在关中的赫连定回师援救,然赫连定正与长安魏军胶着不下,拓跋焘又故意示之以弱,令士兵采集野菜为食。于是,赫连昌引步骑三万出城迎战,魏军伪退,夏兵鼓噪追击,魏军突然反击,夏兵不及防备,大溃而奔,魏军乘胜攻入统万城内,赫连昌逃奔上邦(今甘肃天水),长孙翰领军追至高平(今宁夏固原),不及而还。正在长安城外的赫连定闻统万已破,军心大乱,亦收众退奔上邽。明年二月,平北将军尉眷领兵攻占上邽,赫连昌退保平凉(今甘肃平凉西北),不久,被魏兵所擒。赫连定收拾余众,保据平凉,即皇帝位。
当拓跋焘大举攻夏之际,柔然见魏军方有事于西方,又屡屡侵扰边界,神麔元年(428),柔然骑兵万余攻入塞内,大掠边民而走。因此,拓跋焘决定再行北伐柔然。神麔二年(429)四月,拓跋焘治兵于南郊,分军遣将,平阳王长孙翰领军自西道向大娥山,拓跋焘领军自东道向黑山(今内蒙古和林格尔西北),同会于柔然可汗庭(今蒙古人民共和国哈尔和林西北)。五月,东道魏军到达漠南,舍弃辎重,轻骑奔袭。兵至粟水(今蒙古人民共和国西北部之翁金河),柔然可汗大檀闻听北魏大军来到,不及设备,只得携其家族,焚毁屋舍西遁,部落四散,畜产布野,无人收视。大檀弟匹黎先闻有魏军来攻,帅众欲来救援,恰遇西道魏军到达,被魏军击溃。拓跋焘率魏军沿粟水西行,六月,到达离平城三千七百余里的菟园水(今蒙古人民共和国杭爱山南之推河),魏军分兵搜讨,东至瀚海(今蒙古高原东北境),西至张掖水(今纳林河),北越燕然山(今杭爱山),原来受柔然控制的高车诸部也趁机摆脱柔然,先后归附北魏者有三十余万落之多,所获牛马百余万匹。七月,拓跋焘引兵东还,回到漠南,闻东部高车屯驻已尼陂(今贝加尔湖),人畜甚众,遂遣左仆射安原等领骑兵往攻之,招降东部高车数十万落,将他们劫往漠南北魏控制地区。十月,魏军凯旋回到平城。
柔然的强盛,本来是靠高车部落的依附,一旦高车挣脱统治,柔然汗国的势力,便骤然削弱,可汗大檀以部落衰弱,恚恨发病而死。此后,拓跋焘在太平真君四年(443)和十年(449)又两次亲征,击败柔然,使柔然怖威北窜,不敢复南,消除了北部边境的威胁。
击败柔然后,拓跋焘整顿了北边的镇戍。北魏在北部边境设置镇戍,起于道武帝拓跋圭时,其时,拓跋族正步入中原,为免除柔然入侵带来的后顾之忧,在边境地区设置镇戍,配备镇兵御边。明元帝拓跋嗣时,又进一步增设镇戍,在西起五原(今内蒙古包头西北)、东至赤城(今河北赤城),绵延二千多里的边境上筑长城,配置镇戍。拓跋焘在征服柔然后,对北边镇戍加以完善,使之制度化,西暨五原、东至濡源(今河北东北部滦河),三千多里的边境上,分设六镇,徙柔然、高车降附之民居之,各镇设置府司,增置吏员。不久,又诏令数有战功,兼悉北境地形的来大千巡抚六镇,经略布置。这样,就使原来仅仅为了御边而设置的镇戍成为边境一级地方政权,兼理军民政务。此后,这一套镇戍制度便相沿传至北魏末,直到六镇起义后,才改镇为州。