黃忠率兵趕到陽平關時,劉備與夏侯淵已經相持一年多。劉備命黃忠為先鋒,出關南行,渡過淝水,選擇險要的地方安營紮寨。夏侯淵得知後,一麵領兵前來,一麵寫信給曹操,讓他派兵支援。曹操親自帶領全軍,直指漢中。臨行前,曾派人對夏侯淵說:“作為將領,既要勇敢,又要懂得運用才智,否則有勇無謀,隻是一介匹夫。”夏侯淵一意孤行,定要爭奪定軍山。法正勸劉備堅守不動。心粗氣暴的夏侯淵,指揮部下,一再進攻,都被劉備擊退。待到日落,夏侯淵的銳氣已經衰弱,法正對劉備說:“敵兵已經鬆懈,可乘機進攻了!”劉備令黃忠登高臨下,一鼓作氣,衝入夏侯淵陣中。夏侯淵正想親自抵擋,黃忠已經策馬來到麵前,“砉”的一聲,將夏侯淵的人頭砍下。益州刺史趙顒前來援救夏侯淵,已經來不及了,剛與黃忠交戰幾個回合,又被黃忠劈死。劉備見黃忠得手,領兵後進,殺得敵軍東逃西散。還是張郃領軍援應,才招集敗兵,逃回營中。
督軍杜襲與司馬郭淮,因軍中突然失去主帥,暫且推選張郃主持大局,然後寫信將此事報告曹操。劉備獲勝後,想渡河東去,因對岸有曹軍把守,擔心他們半路截擊,隻好從長計議。忽見漢水對麵塵頭大起,奔來許多兵馬,料知是曹操親自到來,劉備不禁笑著說:“曹操雖然親自到來,也無能為力,我此次一定要得到漢川!”劉備堅守不動,曹操也不敢逼近,隻與劉備隔水相望。大約過了十天,仍未交戰。黃忠探知曹操的軍糧多囤積在北山下,便想領軍偷襲。劉備令黃忠為先鋒,讓趙雲隨後跟從。黃忠想自己邀功受賞,先與趙雲約定時間說,等約定的時間過了,趙雲再出兵支援。
曹操善於劫持別人的糧草,哪有對自己的軍糧不加以提防的道理?黃忠自恃勇猛,悄悄渡過漢水,直抵北山,果然看到糧車像螞蟻一樣聚集在那裏,於是一聲呐喊,衝殺過去,看守糧草的士兵當然逃走。黃忠正想上前搶奪,不料曹操的部下從兩麵殺到,一隊由張郃統領,一隊由徐晃統領,二人都是曹操手下的猛將。多虧黃忠手中有一柄大刀,衝開一條血路。趙雲在營中等候消息,見已過了與黃忠約定的時間,就出營眺望,遠遠望見黃忠被曹操的部將追趕,戰敗回來,立即策馬上前,讓黃忠過去,自己截住曹操的士兵。趙雲殺了一陣,然後退回,張郃、徐晃緊追不舍。趙雲回到營中,令士兵偃旗息鼓,大開營門,並在兩旁埋伏下弓箭手,靜待敵軍到來,自己則單槍匹馬,站在營外。張郃與徐晃追到趙雲營中,見趙雲孤身一人站在營門外麵,暗暗稱奇,過了好一會兒,才鼓足勇氣向趙雲奔來。趙雲仍然不動,把手中的槍向後一揮,即刻箭如雨下,曹操的士兵驚慌逃走。當時天色昏黃,曹軍不知趙雲有多少伏兵,難免自相踐踏,倉皇逃命。趙雲從後麵猛追,嚇得敵兵紛紛落水,死了無數。趙雲將敵兵趕過漢水,奪得許多鎧甲和兵器,才收兵回營。劉備不禁讚道:“趙子龍一身都是膽啊!”
曹操接連戰敗,又遇上瘟疫,部下的將士已死去兩三成,於是有了退兵的想法。忽然從許都傳來警報,少府耿紀、司直韋晃、太醫令吉本突然叛變,射傷督軍王必,王必正與典農中郎將嚴匡合兵討伐叛軍。原來,曹操留下長史王必在鄴中管理軍事。王必與京兆人金禕是好朋友,常常互相問候。金禕是前漢宰輔金日磾的後裔,慷慨俠義。他想自家世代為漢臣,就不願替魏國效命,所以暗中結交耿紀、韋晃、吉本等人,對抗曹操,迎進劉備。建安二十三年的元宵節,許都張燈結彩,王必也在營中宴飲。還沒散席,突然發生變亂,營外一片火光,照徹營內,王必慌忙上馬,出營逃跑,不料左肩中了一箭,忍痛逃往金禕家躲避。金禕的家人聽到敲門聲,還以為是金禕等人成功歸來,問道:“王必死了嗎?”王必這才知道金禕是同謀,忙轉身奔到嚴匡營中。嚴匡號召士兵,出去攻打亂黨。耿紀等人沒有士兵,隻帶了數百名家仆,哪裏打得過嚴匡?金禕、吉本相繼戰死,耿紀、韋晃被擒,隨後被梟首示眾,他們的家人全部被誅殺。
嚴匡與王必聯名將此事稟報曹操,曹操心裏雖然欣慰,但也暗暗愁悶,後來又得知王必病死,便打算班師退回。想到從此要放棄漢中,曹操又不甘心,於是決定與劉備再戰一場。劉備采納法正的提議,讓黃忠、趙雲等悄悄渡到漢水上流,繞到曹操的營寨旁邊,用船把士兵渡到對岸,直攻曹操。曹操隻顧前麵,不料兩旁有敵軍殺入,隻得分兵對抗,自己慢慢後退。劉備安全渡過漢水,逼近曹操。曹操整軍作戰,劉備派養子劉封出馬,曹操就令徐晃前去攔截,並大聲說道:“賣鞋的讓養子出戰,如果我把黃須兒叫來,看你還能抵擋嗎?”話未說完,劉封已經退去。
曹操正想率兵追擊,忽然聽到劉備營中金鼓齊鳴,料知不便輕易進軍,於是派人召黃須兒過來。黃須兒是曹操的兒子曹彰,體力過人,能徒手與猛獸格鬥,因胡須是純黃色的,所以被稱為黃須兒。等黃須兒奉命趕來,曹操已經退到長安了。原來,曹操因多次爭戰無功,退到斜穀。當晚有人送來雞湯,曹操正在享用,有人進來請示夜間的口號,曹操隨口說出“雞肋”二字。來人不敢細問,便傳令出去,將士都莫名其妙。主簿楊修卻連夜收拾行裝,準備回去,眾人吃驚地詢問原因,楊修答道:“‘雞肋’二字寓有深意,放棄不甘心,吃起來又沒有味道,以此看來,必定要撤軍回去了!”將士聽說後,都收拾東西準備回去。此事被曹操聽說,責問眾人,眾人都說是楊修的主意,曹操從此嫉恨楊修。但看眾人都有回去的想法,難以再戰,隻好放棄漢中,立即班師,退回長安。途中與曹彰相遇,囑咐他一同回去,黃須兒不敢違抗父親的命令,隻得半路折回。