夏侯淵急忙派人到黃忠營寨,說願意用陳式來交換夏侯尚。黃忠約定第二天在陣前交換。第二天,兩軍都來到山穀開闊之處,擺開陣勢。黃忠、夏侯淵各自騎馬站在本陣門旗之下。黃忠押著夏侯尚,夏侯淵押著陳式,兩人都沒給他們穿袍鎧,隻讓他們穿著單薄的衣服遮體。一聲鼓響,陳式、夏侯尚各自朝著本陣奔回。夏侯尚快跑到陣門時,被黃忠一箭射中後心。夏侯尚帶著箭跑回了本陣。夏侯淵大怒,驅馬直取黃忠。黃忠本就想激怒夏侯淵廝殺。兩員將領交鋒,戰了二十多個回合,曹營內忽然鳴金收兵。夏侯淵慌忙撥轉馬頭往回跑,黃忠趁機追殺了一陣。夏侯淵回到陣中,問押陣官:“為什麼鳴金收兵?”押陣官回答說:“我看到山凹處有幾處蜀兵的旗幡,擔心有伏兵,所以急忙召回將軍。”夏侯淵相信了他的話,於是堅守不出。
黃忠進逼到定軍山下,和法正商議。法正用手指著說:“定軍山西麵,高聳著一座高山,四下都是險要的道路。從這座山上足以俯瞰定軍山的虛實。將軍如果能奪取這座山,定軍山就儘在掌握之中了。”黃忠抬頭望去,見山頂稍平,上麵有少量人馬。當天夜裡二更時分,黃忠帶領軍士鳴金擊鼓,徑直殺上山頂。這座山由夏侯淵的部將杜襲把守,隻有幾百人。當時見黃忠大隊人馬蜂擁而上,隻得棄山逃走。黃忠占領了山頂,這裡正好與定軍山相對。法正說:“將軍可以守在半山腰,我在山頂。等夏侯淵的兵馬來到,我舉白旗為號,將軍就按兵不動;等他們倦怠無備時,我舉起紅旗,將軍就下山出擊:以逸待勞,一定能夠取勝。”黃忠非常高興,聽從了他的計策。
再說杜襲帶領敗軍逃回,去見夏侯淵,報告說黃忠奪了對麵的山。夏侯淵大怒說:“黃忠占了對麵的山,我不能不出戰了。”張郃勸諫說:“這是法正的計謀。將軍不可出戰,隻適宜堅守。”夏侯淵說:“他占了我的對麵的山,窺探我的虛實,我怎麼能不出戰?”張郃苦苦勸諫,夏侯淵不聽。夏侯淵分兵圍住對麵的山,大聲叫罵挑戰。法正在山上舉起白旗;任憑夏侯淵如何百般辱罵,黃忠就是不出戰。午時過後,法正見曹兵倦怠,銳氣已經低落,大多下馬坐地休息,於是揮動紅旗,鼓角齊鳴,喊聲震天,黃忠一馬當先,衝下山來,猶如天崩地塌之勢。夏侯淵措手不及,被黃忠趕到麾蓋之下,黃忠大喝一聲,聲如雷吼。夏侯淵還沒來得及迎戰,黃忠的寶刀已經落下,將他連頭帶肩,砍為兩段。後人有詩稱讚黃忠道:“蒼頭臨大敵,皓首逞神威。力趁雕弓發,風迎雪刃揮。雄聲如虎吼,駿馬似龍飛。獻馘功勳重,開疆展帝畿。”
黃忠斬了夏侯淵,曹兵大敗,各自逃命。黃忠乘勢去奪取定軍山,張郃領兵前來迎戰。黃忠與陳式兩下夾攻,混戰一陣,張郃敗走。忽然山旁殺出一支人馬,擋住去路;為首的一員大將,大喊:“常山趙子龍在此!”張郃大驚,帶領敗軍奪路朝定軍山逃去。隻見前麵一支軍隊迎來,正是杜襲。杜襲說:“如今定軍山已經被劉封、孟達奪取了。”張郃大驚,於是和杜襲帶領敗軍到漢水紮營;一麵派人飛速報告曹操。
曹操聽說夏侯淵戰死,放聲大哭,這才領悟管輅所說的:“三八縱橫”,指的是建安二十四年,“黃豬遇虎”,指的是己亥年正月,“定軍之南”,指的是定軍山之南,“傷折一股”,指的是夏侯淵與自己有兄弟般的情誼。曹操派人尋找管輅,卻不知他去了哪裡。曹操對黃忠恨之入骨,於是親自統領大軍,到定軍山為夏侯淵報仇,命令徐晃作為先鋒。行軍到漢水,張郃、杜襲迎接曹操。二將說:“如今定軍山已經失守,可以把米倉山的糧草轉移到北山寨中屯積,然後再進兵。”曹操同意了。
再說黃忠斬了夏侯淵首級,來到葭萌關上拜見劉備獻功。劉備非常高興,加封黃忠為征西大將軍,設宴慶賀。忽然牙將張著前來報告說:“曹操親自率領大軍二十萬,來為夏侯淵報仇。如今張郃在米倉山搬運糧草,轉移到漢水北山腳下。”諸葛亮說:“如今曹操率領大軍來到這裡,恐怕糧草不夠,所以按兵不進;如果能有一人深入敵境,燒毀他們的糧草,奪取他們的輜重,那麼曹操的銳氣就會受挫。”黃忠說:“老夫願意擔當此任。”諸葛亮說:“曹操可不是夏侯淵能比的,不可輕敵。”劉備說:“夏侯淵雖然是總帥,但隻是一個有勇無謀的人,怎麼比得上張郃?如果能斬殺張郃,勝過斬殺夏侯淵十倍。”黃忠激動地說:“我願意去斬殺他。”諸葛亮說:“你可以和趙子龍一同帶領一支軍隊前去;凡事要商量著辦,看誰能立功。”黃忠答應後便準備出發。諸葛亮就任命張著為副將一同前往。
趙雲對黃忠說:“如今曹操率領二十萬大軍,分屯十個營寨,將軍在主公麵前主動要去奪糧,這可不是小事。將軍打算用什麼計策?”黃忠說:“看我先去,怎麼樣?”趙雲說:“等我先去。”黃忠說:“我是主將,你是副將,怎麼能先爭著去?”趙雲說:“我和你都是為主公出力,何必計較?我們二人抓鬮,抓到的先去。”黃忠同意了。當時黃忠抓到先去。趙雲說:“既然將軍先去,我一定相助。我們可以約定時間。如果將軍按時回來,我就按兵不動;如果將軍過了時間還沒回來,我就帶領軍隊去接應。”黃忠說:“你說得對。”於是二人約定以午時為限。趙雲回到本寨,對部將張翼說:“黃漢升約定明天去奪糧草,如果午時還不回來,我就前去相助。我們營寨前臨漢水,地勢危險;我如果去了,你要謹慎地守住寨柵,不可輕易行動。”張翼答應了。
再說黃忠回到寨中,對副將張著說:“我斬了夏侯淵,張郃嚇破了膽;我明天奉命去劫糧草,隻留下五百士兵守營。你要協助我。今夜三更,所有人都要吃飽;四更離開營寨,殺到北山腳下,先捉住張郃,再劫糧草。”張著依令行事。當夜黃忠率領人馬在前,張著在後,偷偷渡過漢水,一直來到北山腳下。東方日出時,他們看到糧草堆積如山。隻有少量軍士看守,這些軍士見蜀兵來了,都棄糧逃走。黃忠命令騎兵全部下馬,取來柴草堆在米糧上麵。正要放火時,張郃的兵馬趕到,與黃忠混戰在一起。曹操得知消息,急忙命令徐晃前去接應。徐晃領兵前進,將黃忠圍困在核心。張著帶領三百士兵突圍逃走,正要回寨,忽然一支軍隊殺出,攔住去路;為首的大將,是文聘;後麵曹兵又趕到,把張著也圍住了。