軍都來到山谷開闊的地方布好陣勢。黃忠和夏侯淵各自立馬在本方陣前的門旗之下。黃忠帶著夏侯尚夏侯淵帶著陳式兩人都不穿鎧甲只穿著單薄的衣服。
戰鼓一聲響,陳式和夏侯尚各自朝著自己的陣營奔逃。夏侯尚在逃回陣門的時候,被黃忠一箭射中後背,他帶著箭傷逃回了陣營。夏侯淵大怒,騎馬直衝黃忠,黃忠也正要激他交戰。兩將交鋒,戰鬥了二十多回合,突然曹營內響起了鳴金收兵的聲音。夏侯淵慌忙撥馬而回,黃忠則趁機發動攻擊,大敗曹軍一陣。夏侯淵回到陣營問押陣官為什麼鳴金,回答說看到山凹中有蜀軍的旗幟,恐怕有伏兵,所以急忙召回將軍。夏侯淵相信了他的話,於是堅守不出。
黃忠逼到定軍山下,和法正商議對策。法正指著山說:“定軍山西邊有一座高山,四周都是險峻的山道。這座山上可以俯瞰定軍山的虛實。如果將軍能佔領這座山,定軍山就在我們掌握之中了。”黃忠抬頭望去,發現山頭比較平坦,山上有少量人馬。於是當夜二更時分,黃忠帶著士兵鳴金擊鼓,一直殺上山頂。這座山原本由夏侯淵的部將杜襲把守,但只有數百人。看到黃忠大隊人馬衝上來,他們只能放棄山頭逃走。黃忠佔領了山頂,正好與定軍山相對。
法正對黃忠說:“將軍可以守在半山腰,我則守在山頂。等夏侯淵的軍隊來了,我舉起白旗為訊號,將軍就按兵不動。等他們疲憊無備的時候,我就舉起紅旗,將軍就下山攻擊他們。這樣以逸待勞,必定能取勝。”黃忠非常高興,聽從了他的計策。
卻說杜襲帶著殘兵逃回夏侯淵的營地,告訴他黃忠奪了對面的山頭。夏侯淵大怒說:“黃忠佔了對山,我不能不出戰了。”張合勸諫說:“這是法正的計謀,將軍不應該出戰,只應該堅守。”但夏侯淵不聽,說:“他們佔了對面的山頭,能看到我們的虛實,我怎麼能不出戰呢?”張合再三相勸,夏侯淵就是不聽。他分兵圍住對面的山頭,大罵挑戰。
法正在山上舉起白旗,任憑夏侯淵如何辱罵,黃忠就是不出戰。到了午時以後,法正看到曹兵已經疲憊不堪,士氣低落,很多人都下馬休息。於是他揮動紅旗,鼓角齊鳴,喊聲震天。黃忠一馬當先衝下山來勢如破竹。夏侯淵措手不及被黃忠趕到麾蓋之下大喝一聲如同雷鳴。夏侯淵還沒來得及反應黃忠的寶刀已經落下將他的頭和肩膀一起砍為兩段。
後人有一首詩讚美黃忠說:“蒼頭臨大敵皓首逞神威。力趁雕弓發風迎雪刃揮。雄聲如虎吼駿馬似龍飛。獻馘功勳重開疆展帝畿。”黃忠斬了夏侯淵之後曹軍大敗四處逃散。黃忠乘勝追擊去奪取定軍山張合領兵前來迎戰。黃忠和陳式兩下夾攻混戰一陣張合敗逃。
突然山邊閃出一隊人馬擋住了去路為首的一員大將大喊:“常山趙子龍在此!”張合大驚帶著敗軍尋找道路向定軍山逃去。只見前面又有一隊兵馬迎上來原來是杜襲。杜襲告訴他:“現在定軍山已經被劉封、孟達奪走了。”張合大驚於是和杜襲帶著敗兵到漢水邊紮營一面派人飛報曹操。
曹操聽到夏侯淵戰死的訊息放聲大哭這才明白管輅所說的“三八縱橫”是指建安二十四年;“黃豬遇虎”是指歲在己亥正月;“定軍之南”是指定軍山的南邊;“傷折一股”是指夏侯淵和他有兄弟之情。曹操想找人尋管輅時已經不知道他去了哪裡。曹操非常痛恨黃忠於是親自率領大軍來定軍山為夏侯淵報仇命令徐晃擔任先鋒。當他們行進到漢水邊時遇到了張合和杜襲兩位將軍。他們告訴曹操:“現在定軍山已經失守了我們應該把米倉山的糧草轉移到北山寨中囤積然後再進兵。”曹操同意了他們的建議。
黃忠手持夏侯淵的首級,來到葭萌關向劉備獻功。劉備大喜,加封黃忠為徵西大將軍,並設宴慶賀。忽然,牙將張著來報:“曹操親自率領二十萬大軍,來為夏侯淵報仇。目前,張