涼州刺史梁熙本有割據涼州的打算,聽說呂光來了,第一件事先把行唐公苻洛給殺了,以防此人與呂光裡應外合,又命高昌太守楊翰等人嚴守險關,不許呂光入境。哪知道呂光一路進軍,所過郡縣紛紛請降,楊翰等人全部投奔了呂光,高昌、玉門、敦煌、晉昌等郡很快落到呂光手中。
梁熙急派兒子梁胤、大將姚皓、別駕衛翰,率五萬部隊來到酒泉據守。但梁胤的軍隊很快被呂軍擊敗,梁胤被擒;呂光接著進軍到姑臧城下時,武威太守彭濟帶兵把梁熙擒住,獻城投降。呂光命將梁熙父子斬首,然後派人到涼州各處發號令,命令其他的州郡投降,但酒泉太守宋皓和西郡太守索泮堅決不降。呂光派兵很快將兩城攻下,將二人斬首。至此,呂光佔據涼州,自稱涼州刺史。這時傳來苻堅死訊,呂光遂令三軍為苻堅戴孝穿白,並舉行了盛大的喪禮。第二年十月,呂光又自稱使持節,侍中,中外大都督,督隴右、河西諸軍事,大將軍,涼州牧,酒泉公。史稱後涼。
這時,奉養代王什翼犍嗣孫拓跋珪的劉庫仁死掉了,他的兒子劉顯繼承了他的位子。劉庫仁替秦國管理著代國舊地黃河以東的地區,這些地方居住的都是原代國的拓跋鮮卑民族。拓跋珪年已十六歲,不但武藝出眾,而且拓跋族的各部落首領也對這個代王之後特別尊重。劉顯擔心拓跋珪對自己的權力形成威脅,便想殺掉他。原代王拓跋什翼犍的外甥知道這個訊息後急忙告訴拓跋珪的母親賀氏。賀氏用美色引誘劉顯,把劉顯灌醉,拓跋珪遂帶著長孫犍、元佗、羅結等人悄悄逃走。
劉顯一覺睡到第二天大中午才醒來,不見了拓跋珪,知道受騙,便問賀氏要人。賀氏的弟弟劉亢泥苦苦為賀氏求情,劉顯又戀賀氏美色,總算沒有殺她。不久劉顯得到訊息,拓跋珪已到了賀蘭部,外朝大人賀悅、南部大人長孫嵩等都率著各部落去投奔拓跋珪。劉顯於是親率一支軍隊去攻打賀蘭部,由於賀蘭部早就得知訊息遷移,劉顯沒能追上。而中部大人庾和辰趁劉顯出兵,也率部跑了,而且還把賀氏也帶走了。
拓跋珪逃到賀蘭部投靠他的舅舅賀訥。賀訥遂把此賀蘭部交給拓跋珪,接著拓跋鮮卑族的許多部落都來投奔,拓跋珪很快擁有三十萬的部眾。拓跋珪大悅,遂於東晉太元十一年正月(386)戊申,即代王位,定都盛樂城。四月,拓跋珪因&ldo;代王&rdo;是晉朝封號,改&ldo;代&rdo;為&ldo;魏&rdo;,自稱魏王。史稱北魏。
這時,劉顯的弟弟劉肺泥、族人劉奴真都離開劉顯,率部降魏。拓跋珪認為殲滅劉顯,統一代國舊地的時機到了,遂聯合後燕,一起去攻劉顯。劉顯被燕魏聯軍殺得大敗,逃到馬邑西山。魏燕聯軍追到馬邑西山與劉顯的軍隊又打了一仗,劉顯又大敗,這次劉顯的家底徹底賠光了,只帶著一百多親信逃到西藏,後來便再沒有此人的訊息。燕軍把劉顯手下的所有軍隊和百姓,還有數以千萬的馬牛羊吞併後南歸,並且立劉顯的弟弟劉可泥為烏桓王,對這些劉顯舊部進行管理。
拓跋珪則得到了劉顯的地盤,他以此為基礎,又派兵四處征伐,很快將庫莫奚、吐突鄰、高車、紇突鄰、紇奚等部統一,只有柔然部去投靠了劉衛辰。拓跋珪親率大軍去徵柔然,柔然並不迎擊,而是一直向西逃。柔然逃跑的速度比兔子還要快,魏軍全部是騎兵,竟然連追六百里不見柔然部的一點兒蹤影。拓跋珪手下的諸將都勸他回去,拓跋珪堅決要追。部將稱糧食不夠了。拓跋珪問:&ldo;如果殺副馬作為軍糧,夠不夠三天的口糧?&rdo;部將道:&ldo;足夠。&rdo;遊牧民族的騎兵部隊,每名騎兵除了自己騎的馬外,還有一到兩匹備乘的馬,叫做副馬。
拓跋珪於是命令以副馬為糧,繼續追擊,終於在大磧南床山(今蒙古國境內席勒山)下追上柔然,擊敗柔