卻說北魏神元皇帝自太子沙漠汗死後,寵愛諸子,思念沙漠汗成疾,是年崩,享國共五十八年,壽一百零四歲。神元既崩,諸部大人乃立文帝少子弗政為帝。帝刑政寬簡,百姓懷服,在位一年而崩。諸部大人又立神元帝少子祿官為昭帝。祿官既承大位,選日朝會諸部大人。時諸部大人畢至,俱各拜起立兩邊。昭帝與諸部大人議曰:“我欲分國為三部,一居上穀北、濡源西,東接宇文部,我自統之;一居代郡之參合坡北,使文帝長子猗竾統之;一居定襄之盛樂城,使文帝少子猗盧統之,其議如何?”諸部大人曰:“大王所為,無可無不可也。”於是,昭帝即降詔,封猗竾為桓帝,封猗盧為穆帝,各授以兵五萬人,命其統領諸部大人往二處去訖。
其時先是神元與晉和好,並不動刀兵。卻說穆帝猗盧引所部軍馬出並州,遷雜胡去北,自徙都雲中、五原、朔方城,其地乃是匈奴烏桓國王所統,被穆帝引眾霸居之。匈奴主烏桓國王聞知,乃引所部大兵十萬前來爭奪。穆帝猗盧亦領軍五萬出迎。烏桓國王兵分兩路掩至,猗盧身先出陣,來殺匈奴之兵。
諸部大人見穆帝當先向前,眾領軍盡力擊之,烏桓國王兵大敗,諸部連追一百餘裏。烏桓國王勢孤力寡,引殘兵走還國。猗盧追趕至杏城之北八十裏,迄長城與晉分界而回,招兵買馬,積草聚糧不提。
卻說桓帝猗竾引所部五萬人馬渡漠北,占西路為都,分軍守把險隘。其地乃是烏戈國王所統。烏戈國王聞知猗竾占其西地,心中大怒,乃引所部人馬及兵十萬前來攻討。猗竾王大驚,遂喚魯供、餘光先帶一萬人馬守西關,臨行囑供、光曰:“如十日內失之關隘,必斬你二人;十日外失了關,不幹你二人事。我親率大軍隨後便至也。”二人領了將令,是夜便行。魯仁進曰:“兄弟魯供性躁,恐誤大事,某當代往。”猗竾王曰:“你與我押送糧草,隨後接應。”
卻說魯供、餘光到關上,堅守關隘,隻不出戰。烏戈國王選軍人能言快語者來關下大罵猗竾王,毀辱太甚。魯供大怒,要提兵下關廝殺。餘光諫曰:“此時烏戈國王見我兵不出,故來相激,將軍不可出戰,待主公大隊軍馬來時,自有主意。”
因此止祝烏戈國使軍人日夜輪流數番來罵,魯供大怒,隻要廝殺,被餘光苦苦哀告所阻。當時已過九日了,魯供在關上看時,烏戈軍都下了馬,坐在關前草地上罵。魯供見了,即備馬點起五千兵馬,開關殺將下來。餘光聞知,恐供有失,領兵隨後接應。烏戈軍棄馬拋戈而走。魯供得勝,領軍趕去,餘光驟馬來趕,請供速回。烏戈大軍殺來,魯供抵擋不住,折軍大半,殺出重圍。魯供、餘光急往關上奔時,山背後兩軍截住,左是烏戈王,右是西水王。魯供等見腹背受敵,不能複關,乃棄關引眾而走。烏戈王等引兵隨後追趕。
其時桓帝猗竾,招集各處軍馬已齊,次日起行。魯仁為前鋒,軍行之際,正遇魯供、餘光敗回。魯仁方知失了西關,乃下住營寨,與餘光、魯供接著。過了一日,猗竾王大軍方到,供、光前去請罪。猗竾令紮下營寨,喚魯供、餘光問曰:“與你十日限,緣何九日失了關隘?”供曰:“烏戈軍無般不罵,某等因見彼軍懈怠,乘勝趕去,不想中賊機彀。”猗竾曰:“魯供年幼躁暴,餘光你須曉事。”光曰:“我累諫不聽,當日光在關東點視糧草,將及知道,小將軍已自下關去了。光恐有失,因此亦引兵接應。”猗竾大怒,喝斬魯供。一班兒諸將皆跪下告饒,猗竾方曰:“權且記罪,後有功可贖,如無功必誅。”因是魯供伏罪而退。猗竾次日傳令,進兵直叩西關。魯仁曰:“可先下定寨柵,然後打關未遲。”猗竾方始教軍砍伐樹木,立起排柵,分作三寨。左寨魯仁,右寨夏淵,中寨自領。
次日,西軍哨馬直到寨前,猗竾並三寨大小將校起追西軍哨馬,未上十數裏,西軍全隊亦到,兩邊各自布陣。猗竾自出,立於門旗下,看西兵人人勇猛,個個英雄,各執長槍,排列陣腳。門旗開處,中間湧出一員大將,紅袍銀鎧,白馬大刀,生得目如傅漆,唇若塗朱,腰細膀闊,聲雄力猛,乃即烏戈國王。
上首乃西水國王,下首乃代山國王。見猗竾在陣前,高聲大叫曰:“汝何故侵犯我之國王!此仇必與汝賊勢不兩立。”言訖,三人各舞大刀,殺過陣來。猗竾欲出迎敵,背後王示出曰:“割雞焉用牛刀,大王請看小將出陣。”王示拍馬挺槍出迎,與烏戈國王兩騎交鋒。戰不數合,示兵大敗。魯仁等殺出助戰,皆敵不住,被西軍混殺,卻得魯供引一軍死拒定寨柵,西軍方退。
猗竾傳令固守,亂動者斬。諸將告曰:“西兵甚是強壯,盡使長槍。若非選擇前鋒以迎之,則難擋也。猗竾曰:“戰與不戰皆在於我,雖有長槍,安能便刺汝等也?諸將皆堅壁觀之,賊自退矣。”諸將退而言曰:“主人自來征戰勇敢當先,如今一敗烏戈,何如此弱也?”因是各不知其主意。次早,細作報來,西關昨日又添十七個國王,來合兵七萬相助烏戈,乃是羌胡部落人也。猗竾大喜。至日脯時,細作又報入中軍來,說烏戈又添十三個國王,共合兵六萬相助。猗竾在帳大笑,置酒作賀。諸將問曰:“烏戈添兵,大王歡喜,何也?”猗竾曰:“待吾破了卻對汝說。”諸將皆暗笑之,自此相持三個月餘。
忽一日,猗竾集諸部將佐至帳下,謂魯仁曰:“今烏戈盛兵皆在西關上,此去西隴必無準備,是賊之無謀也。卿等領二萬人從北徑度嶺西,直入隴中截之,吾自領部佐穿西關左路,燒其糧草。夏淵引五萬大軍打關搦戰,待其出戰,卻舉火為號,三下進兵,可破西軍矣。”計議已定,諸將各依計而行。是夜,魯仁、魯供以兵二萬渡嶺西去了,猗竾自領兵亦穿關左,去燒糧屯。次日,夏淵以兵五萬殺上西關。烏戈王與西水王、代山王見軍至,各點起大兵出戰。未及交鋒,夏淵便走。烏戈國王率諸國王驅兵追趕,未上十裏之程,追兵傳報猗竾引軍抄左路上關,放火燒了糧蓄。烏戈大驚,正欲回兵,又報道稱說魯仁兄弟陰入西隴,截我兵歸路。烏戈慌亂,急引諸王殺還關上。將及至關,已被猗竾橫攔截住相殺,烏戈王傳令,教休要戀戰,退複西隴。於是,諸國王各盡力衝過西關,猗竾與夏淵合兵後追,烏戈王大兵穿至西隴,被魯仁以軍敵住,不能前進。烏戈國王乃自引本部兵穿陰穀而逃,走還本國。西水十餘國見烏戈王走了,急欲奔逃,已被截住歸路。欲戰時主兵甚銳,無奈隻得倒戈卸甲,自縛伏道請降。猗竾一見,教釋其縛,帶還大寨。
猗竾置酒款待三十餘國諸王,皆以善言撫慰其心,令其各還本國,去訖。
諸將問曰:“前日烏戈王得勝,日日添兵,羌部齊集而來三十國,諸將膽顫心驚,大王反加歡喜,置酒作賀,此意何也?”猗竾王曰:“前日烏戈添兵,兵無紀律,兵多心必不一。吾用火攻焚其糧草,食絕無依,眾心必亂也。且三十餘國若一一從頭去征,非十年安可服也?今全集在此,一計破之,功成一旦,吾故喜也。”於是諸將曰:“大王天資高遠,智量宏深,我等不及也。”猗竾王曰:“非吾一人之力,皆賴卿等之力也。”言訖,傳令班師還國。猗竾王人物生得英傑魁梧,戰馬不能勝其坐,乘車駕大牛而行。