北魏前期在都城平城(今山西大同東北)以北邊境設置的六個軍鎮,自西而東為沃野、懷朔、武川、撫冥、柔玄、懷荒六鎮。天興元年(398),魏道武帝拓跋珪建都平城。當時,在蒙古草原上,有強大的遊牧民族──柔然。北魏大軍南下作戰時,柔然的騎兵經常侵入北魏境內,平城的安全受到威脅。為瞭防禦來自北方的侵擾,拱衛首都平城,道武帝時開始在北部邊境(今內蒙古河套地區以東,陰山山脈以南地區)設置沃野等六鎮。六鎮的具體設置時間記載不詳。廣陽王元淵曾說:“昔皇始(道武帝年號,396~~398)以移防為重,盛簡親賢,擁麾作鎮。”北魏邊鎮大約在道武帝時代已初具規模,當時統稱為“北鎮”,有的鎮還沒有固定的治所。太平真君七年(446)六月魏太武帝拓跋燾調發司、幽、定、冀四州十萬人在東起上谷(今北京延慶),西至今山西河曲一帶大規模修築邊防工程。太和十八年(494)七月,孝文帝巡視懷朔、武川、撫冥、柔玄四鎮,下詔六鎮及禦夷城人,年滿八十以上而無子孫兄弟,終身給其廩粟。七十以上傢貧者,各賜粟十斛。“六鎮”之稱,始見於記載。

  六鎮的地理方位是:①沃野鎮,始置於漢沃野縣故城,今內蒙古臨河縣西南。太和十年,遷至漢朔方故城,今內蒙古杭錦旗北。正始元年(504),又遷至今內蒙古五原縣東北,烏加河北。②懷朔鎮,在今內蒙古固陽西南。正光四年(523),改置為朔州。③武川鎮,在今內蒙古武川縣西。舊名黑城,後改為武川。武泰元年(528),改鎮為郡,更名神武郡,屬朔州。④撫冥鎮,今內蒙古四子王旗東南。⑤柔玄鎮,今內蒙古興和縣西北。⑥懷荒鎮,今河北張北。此外,在六鎮東面,尚有禦夷鎮。原為禦夷城,在今河北沽源東北。後置鎮,在今河北赤城西北。武泰元年,改鎮為州。

  六鎮扼守塞上交通要道。由平城向北出塞之路,東邊一道自晉陽經平城、懷荒鎮至瀚海;西邊一道自平城經沃野鎮、高闕戍、燕山至瀚海。中間則有武川鎮,在陰山道上。昔人稱自陰山而北皆大磧。磧東西數千裡,南北亦千裡,無水草,不可駐牧。得陰山,乘高而望,蹤跡皆見,故為要地。陰山道自朔州(治雲中,今內蒙古和林格爾北)向北至白道城,經白道至武川鎮,是從平城出塞的主要通道。北魏時人認為,朔州是白道的沖要,此處不全,則並、肆危殆。武川成為朔州北面的屏障。沃野鎮處於河套平原,北魏在河套地區置河西苑,是政府重要的牧場之一。該鎮有河西承華宮,自道武帝起,北魏皇帝多次巡幸河西,此地農牧業的發展對北魏經濟力量有重要影響。由於上述原因,北魏前期中期,對六鎮極為重視。北魏邊鎮置鎮都大將及僚屬,鎮下置戍,鎮兵巡行防戍。六鎮將領全由鮮卑貴族擔任,戍防軍人主要是鮮卑人,也有來自中原的“強宗子弟”。僅沃野一鎮,就有鎮將、僚吏八百餘人。蒙古草原上的另一遊牧民族高車受柔然壓迫,先後有數十萬人、牛羊百萬內附,也被安置在六鎮地區,分屯邊境。但太和十八年孝文帝遷都洛陽後,著重經營中原,六鎮將士地位日益低下。鮮卑貴族子弟受到歧視,進仕艱難。以後派往北鎮防戍的人,多為流犯或死囚,稱為“府戶”、“兵戶”,與六鎮將士統稱為“鎮戶”。加以朝廷派往北鎮的鎮將貪污者多,邊防士卒與高車等少數民族都受到殘酷的剝削壓迫,生活日益貧困。太和二十二年,懷朔以東諸鎮高車人舉行大規模暴動。孝文帝被迫暫停與南齊作戰,北上鎮壓。暴動雖然被平息,六鎮卻已被嚴重毀壞。正始年間,對六鎮及禦夷鎮進行瞭遷移重建,別置諸戍,明設亭侯,以備不虞。但矛盾並未由此緩和,正光四年,沃野鎮民破六韓拔陵率眾起義於高闕戍,揭開瞭六鎮起義的序幕。諸鎮華夷之民,紛起響應。連克武川、懷朔二鎮。北魏政權聯合柔然鎮壓起義民眾,六鎮起義失敗。六鎮兵民二十萬人被遣散到河北定、冀、瀛三州,至此,六鎮遂告廢棄。