法正安排已畢,便令人回歸大營,速報主公劉備,請主公照計而行。劉備聞報,即親率精銳萬人,分為十隊,夜襲張郃廣石大營。人馬雖然不多,但分十隊散開,舉火吶喊而攻,夜間敵人不知虛實,便有十萬人馬威勢。張郃見遍地火把,不知道蜀兵來了多少,只得率親衛奮戰反擊,十處防御,疲累不堪。劉備打了一夜,見不能克,遂引軍暫退。次日,張郃來見夏侯淵,說昨夜劉備引蜀兵大至,被某擊退,如此如此。夏侯淵道:“即是劉備親來,必在我定軍山下營里歇馬。來日某親自下山,直踹蜀營,擒了劉備,豈非一戰而定!但需防他今夜再來?!庇谑羌訌娚缴戏纻洌号蓮堗A守備鹿角東部,自率精銳守備鹿角南部。是夜,劉備又率一萬兵來,這回卻不再分兵,舍卻南山夏侯淵不理,只集中兵馬全力猛攻東山張郃。由此張郃左支右絀,堪堪不敵,派人急往山南求救。夏侯淵不敢暫離南營,遂分軍一半往救張郃。劉備見其計已售,看看天色將明,即撤了東山之圍,轉至南山走馬谷,令眾軍放火焚燒圍角。須臾之間,大火趁風燃起,煙焰漲天。劉備率兵緩緩而撤,退向山前黃忠大營。
曹軍守山軍兵忽見火起,燒著南山寨柵,慌報夏侯淵知道,并請添兵救火。夏侯淵在南山緊張一夜,聞聽東山打得便似開鍋一般,這邊卻見不到一個蜀兵,又不敢擅離,直憋了一肚皮怒氣。此時見劉備使用放火伎倆,心下愈怒,急派人前去救火、修補鹿角。本部兵原有三萬,昨夜分兵去支援張郃去了一半,此時救火又去了一半,身邊只剩七千余軍馬。夏侯淵環顧左右,即命斥侯入帳,問道:“那劉備昨夜攻我東山,共有多少人馬?”斥候道:“今日劉備棄了東山,前來南山放火之時,末將觀其旗號,看清是不足一萬兵馬。今剛剛撤去,尚未及到山下?!毕暮顪Y懊惱不迭,暗道:“原來是虛張聲勢。怪不得打不破某東山寨柵——劉玄德,你真乃大膽無知之輩也。”遂留兩千余人守寨,點兵五千,下山追殺劉備。
卻說那夏侯淵雖作戰勇猛,但與其兄夏侯惇一樣性格剛烈,不擅使用計謀,亦難識破敵人之計。前番征戰西涼能屢戰屢勝,至于虎步關右者,是因西涼將領皆恃槍疾馬快,比夏侯淵更不善于用計,故使夏侯淵一戰成名;此次遇到法正,那便是棋差一招,縛手縛腳。法正先用疲敵之計,以夜襲東山虛張聲勢,使夏侯淵分兵;又以縱火計再分其兵,最終又使誘兵計使其來追,夏侯淵則步步中計而行,不死待何?劉備縱火燒山,惱了夏侯妙才,一聲大喝,即率五千兵追下山來。劉備聞聽山上金鼓大震,知道夏侯淵發兵來追,遂令部下加快行軍,一半散于山谷,一半奔向黃忠大營。夏侯淵看得清楚,見蜀軍逃散,劉備手手下只有三五千兵,身邊又無大將相護,不由大喜,只管舉刀上前,要擒劉備。馬上行急不計路程,此時若回頭看時,離定軍山大本營已十五里之外了。而且夏侯淵騎的乃是寶馬,五千軍在后面步行跟隨,如何跟得上?夏侯淵到蜀營之前時,卻不知自己已成光桿將軍,深入險地。
劉備急走入營,令士兵安插鹿角,以當追兵。夏侯淵掄刀來到,見劉備就在對面五十步開外,而馬前卻盡是黃忠昨日所布鹿角陣地,可望而不可及。劉備令部下吹起號角,那些散入山谷之眾聞號復出,截住夏侯淵所帶五千曹軍,斗在一起,令與主將夏侯淵不得會合。黃忠聽得山下殺聲大起,又聞號角震天,便要沖下山去,先抬頭觀望山頂,見法正在山上舉起白旗。黃忠于是任他山下天崩地裂,只作不聞。午時以后,法正在山頂上望見夏侯淵忍耐不住,單槍匹馬去挑那鹿角,深入險地;而其背后曹兵銳氣已墮,離主將漸遠,合兵不及。法正乃令將紅旗招展,鼓角齊鳴,眾軍吶喊。黃忠望見紅旗,一馬當先馳下山來,以迅雷不及掩耳之勢直奔夏侯淵。夏侯淵措手不及,被黃忠大喝一聲,寶刀已落,連頭帶肩,砍為兩段??蓱z!昔日虎步關右之將,今日化作南柯一夢。黃忠斬了夏侯淵,曹兵大潰,各自逃生。
黃忠乘勢去奪定軍山,張郃領兵來迎,劉備復引軍前來兩下夾攻,張郃只得敗走。路上又見定軍山上敗軍下來,說益州刺史趙颙戰死,山寨已被劉封、孟達奪了。張郃大驚,遂引敗兵到漢水扎營,令人飛報曹操。劉備提兵而至,三面派兵攻打,不能攻克張郃。遂遣人回成都,請軍師孔明急發援兵。諸葛亮聞報,尋思若再調成都之兵前出漢中,恐西川一時不穩,遲疑不決。從事楊洪勸道:“漢中乃益州門戶,若無漢中,益州能久安乎?軍師勿疑也?!笨酌骰腥淮笪?,立刻發兵,派趙云、魏延二將前去增援。張郃見益州又增兵來,且帶兵將領乃常勝將軍趙子龍,心生恐懼,于是退守陽平關東。劉備大聚眾將,商議進兵直擊南鄭,奪取漢中。法正與黃忠前來報功,說殺了夏侯淵。劉備卻道:“夏侯淵者,一勇之夫耳,殺之無用。張郃實乃曹魏名將,如若殺之,可封萬戶候!”黃忠聞之,默默歸營。
主將夏侯淵即死,曹兵四散,群龍無首。司馬郭淮和督軍杜襲收斂散卒,見軍心惶惶,便商議道:“眾將無主,乃烏合之眾,無能與戰。張郃將軍乃國之名將,劉備亦深為忌憚。今形勢緊迫,惟有相投,以安軍心。”于是率眾齊投張郃大寨,奉其為帥。郭淮部將見己方兵少,建議可依漢水結陣,使蜀軍不得渡河。郭淮卻謂應遠離漢水結陣,趁劉備軍半渡時襲擊。張郃即依郭淮之策,指揮士兵布置營寨,在漢水以北列陣相迎劉備。劉備聞報郭淮結陣漢水以北,知道對方要對自己實施半渡而擊,于是放棄渡河,隔水相持。張郃戰報呈至南鄭,曹操聞夏侯淵死訊,放聲大哭,方悟管輅所言:“三八縱橫”者,乃建安二十四年;“黃豬遇虎”,乃歲在己亥正月也;“定軍之南,傷折一股”,乃族弟夏侯淵死于此地也。
曹操大哭,且后悔道:“夏侯淵本來并非善用兵者,只知殺戮,我聞軍中皆稱其為‘白地將軍’。身為三軍督帥,親臨戰陣尚且不該,更何況是去親至敵營以挑鹿角!痛哉,妙才我弟!是孤害了你也?!彼煊H統大軍,前來定軍山與夏侯淵報仇,令徐晃作先鋒。曹操引大軍行到漢水,張郃、杜襲接著,請治敗軍之罪,曹操皆赦免罪,并以善言撫慰。二將因定軍山已失,請將米倉山糧草移于北山寨中屯積,然后進兵,曹操依允。劉備遂命斂眾拒險不出,卻派黃忠、趙云各引一軍,在漢水截取曹軍糧草,斷其運糧之道。二將領命而去。黃忠惦記主公前日所說之言,一心想著要與張郃相遇,必殺之以立奇功,好教劉備再無話說。即請趙云守寨,自與副將張著前去截糧。趙云欲自出截糧,使老將軍守寨,黃忠抵死不肯。趙云只得允諾,并與黃忠約定:“既將軍要去,可約定時刻。如過時不還,某即引軍來接應?!庇谑羌s定午時為期。當夜黃忠領人馬偷過漢水,直到北山之下,見糧積如山。黃忠教取柴堆于米糧之上,正欲放火,張郃與徐晃領兵前來,將黃忠困于垓心;文聘又至,把張著圍住。
趙云在營等到午時,見黃忠不歸,知道必是遇險,乃急引三千軍出營接應,令副將張翼堅守營寨,多設弓弩,以為準備。趙云挺槍驟馬,引軍直殺至北山之下,見張郃、徐晃兩人圍住黃忠,軍士被困多時。趙云大喝一聲,挺槍驟馬殺入重圍,抖起當年長阪坡雄威,如入無人之境,英勇無敵。張郃、徐晃當之不住,眼見趙云救出黃忠去了,無人敢阻。趙云救了黃忠殺透重圍,又望東南角重圍中救了張著。曹操在高處看得清楚,不由奮然大怒道:“彼能斬我夏侯淵,我不能斬其趙云耶!”親領將士下坡,在后急追。趙云殺回本寨,望見后面塵頭大起,知是曹兵追來,遂喝令道:“休閉寨門!看某如何退敵!”遂撥弓弩手于壕中埋伏,營內偃旗息鼓,吩咐張翼如此如此,不可驚慌。趙云匹馬單槍,立于營門之外。
張郃、徐晃領兵追至,見趙云匹馬單槍立于營外,寨門大開,二將不敢前進。曹操親到,急催督眾軍向前,見趙云巋然不動,前隊曹兵翻身就回,反沖亂自家后隊兵馬。趙云把槍一招,壕中弓弩齊發,曹兵倒下無數,跑得更快,全軍大亂。當時天色昏黑,不知蜀兵有多少在營中埋伏。曹操先撥回馬走,只聽得后面喊聲大震,鼓角齊鳴,黃忠、張著各引兵一枝蜀兵趕來。趙云亦招營中蜀兵殺出,三路兵馬,銜尾急追。曹兵自相踐踏,擁到漢水河邊,趙云追殺甚急。又見北山火頭大起,卻是劉封、孟達奉法正軍師之命率兵偷襲,燒了糧草,后從米倉山殺來。曹操見狀,只得棄了北山糧草,回軍南鄭。趙云占了曹寨,黃忠奪了糧草,大獲勝捷。劉備同法正前至漢水,問如何勝敵如此之快?黃忠將趙云闖圍相救、施空營計拒戰漢水之事細述一遍。玄德大喜,贊道:“子龍一身都是膽也!”遂號為虎威將軍。
曹操回到南鄭,復遣大軍從斜谷小路而進,來取漢水。玄德笑與眾臣笑道:“曹操糧草已失,今雖親來,無能為也,我必有漢川矣。”乃率兵于漢水之西相迎,排列陣勢。曹操命徐晃為先鋒,巴西宕渠人王平為副,前來決戰。那王平字子均,現充牙門將軍。徐晃引軍至漢水,令前軍渡水列陣。王平勸阻,徐晃不聽。結果扎營未穩,卻被趙云、黃忠各引一軍沖擊,魏兵落水無數,敗回漢水東岸。王平懼徐晃遷罪于己,遂引軍投降劉備。玄德大喜,即封王平為偏將軍,領向導使,引軍渡漢水大攻。徐晃即敗,曹操見立腳不住,只得下令撤出漢中,退守陽平關。剛到關上,人報有大將引三千虎騎軍,在城下叫關。曹操急率眾將登城,見是次子曹彰,從長安前來助戰。曹操大喜道:“有我黃須兒來,破劉備必矣!”