更是下定決心不拿下漢中郡不撤兵。
但是,曹操似乎還沒有完全意識到問題的緊迫性。
七月,他從鄴縣出發,沿黃河西行,先到長安。據《三國志王肅傳》記載,曹操路過弘農郡的時候,聽說獻帝劉協的哥哥、弘農王劉辯死後埋在這裡,想到墳前弔唁。弘農郡本地人、擔任黃門侍郎的董遇進諫道:“根據《春秋》大義,即位不滿一年就死去的國君還不能稱為君,弘農王在位時間很短,又被暴臣董卓挾持,最後降位為藩王,不應該拜謁。”曹操認為說得有理,於是作罷。
九月,曹操率大軍才走到長安,總共就一千來裡地卻走了兩個月,這個速度太慢了。
這時,曹操接到合肥方面送來的報告,說右將軍樂進因病去世,曹操聽後十分難過。樂進從曹操己吾起兵時就跟隨他,算是曹家軍的創始人之一。這個小個子從曹操身邊的警衛員(帳下吏)幹起,最終成長為曹軍的高階將領,他作戰勇敢,有謀略,是一個難得的素質全面的大將。
曹操下令追贈樂進諡號為威侯,爵位由其子樂繼承,樂後來官至揚州刺史,在淮南之叛中被殺。奇怪的是,曹操到了長安似乎又停留了二三個月左右,原因不詳,但也就是這要命的二三個月,前線的形勢發生了無法挽回的逆轉。
劉備在陽平關一線做了多次嘗試性攻擊,但都沒有進展,後來自己的援軍陸續到達,士氣有所振奮,到建安二十四年(219年)正月,劉備終於有了收穫,前鋒越過了陽平關,沿著漢水河谷向前推進了一段距離,到達定軍山下。
前面介紹過,漢中的核心地帶是一塊由漢水河谷擴充套件開的盆地,四周都是高山,重要的城鎮幾乎都在漢水兩岸。陽平關是這塊盆地的西大門,它坐落於漢水之上。
也就是說,從陽平關沿著漢中往前,可以到達漢中郡的中心城市南鄭,但在到達那裡之前還會遇到一處屏障,就是定軍山。
定軍山位於漢水之南,今陝西省勉縣城南十餘里處,屬大巴山脈,與漢中盆地周邊的深山大川相比,它海拔並不很高,主脈是由十二座東西綿延的山峰組成,總長約二十多里,其最高處海拔不過八百多米,由此再往東,就是平川了。
也就是說,定軍山雖然是一道屏障,但卻並不是特別險要,劉備率軍攻到這裡,曹軍就危險了。
夏侯淵一看定軍山被佔,急忙來搶,雙戰展開激戰。
劉備發動夜襲,燒了曹軍營壘的鹿角,這時候夏侯淵駐守在西邊的營寨,張駐守東邊的營寨,劉備集中力量攻擊張,張有點頂不住了,夏侯淵把自己這邊的守軍分出一半增援張,可這樣一來就出大事了。
據《三國志法正傳》記載,夏侯淵是親自率兵來增援張的,法正看到後,覺得機不可失,建議劉備猛攻,不惜一切代價直取夏侯淵。劉備命黃忠擔任主攻,咬住夏侯淵的增援部隊不放,一陣猛打猛衝,曹軍大敗,徵西將軍、博昌侯夏侯淵居然戰死沙場!一同戰死的,還有曹操任命的益州刺史趙。
曹操以前經常告誡夏侯淵說:“作大將的也有該示弱的時候,不能一味恃強鬥狠。為將者應該以勇為本,以智取勝,有勇無謀只不過是一介匹夫罷了(為將當有怯弱時,不可但恃勇也。將當以勇為本,行之以智計;但知任勇,一匹夫敵耳)。”而夏侯淵的戰死,正好印證了曹操的話。
《曹操集》中有一篇《魏武軍策令》,也說到了這場戰鬥。根據這篇軍令的記載,當時的戰鬥情形是這樣的:敵人燒燬了曹軍的鹿角,但這些鹿角離大營有十五里。夏侯淵居然獨自帶著四百兵去修補鹿角,敵人在山上看到了,於是從山谷中殺出,夏侯淵親自參加戰鬥,最後戰死。
曹操認為夏侯淵在此戰中犯了指揮上的錯誤,像夏侯淵這樣擔負整個戰場指揮重任的大將,不應該親自參與戰鬥,更何況修補鹿角這樣的小事了。
曹操以後把這件事寫進軍令裡向全軍通報,可見他對定軍山之敗很介意。在這篇軍令裡,他甚至說出了重話,稱夏侯淵本來不擅長帶兵,軍中呼之為“白地將軍”(淵本非能用兵也,軍中呼為“白地將軍”)。雖然夏侯淵已經死了,但曹操仍然沒有原諒他。
夏侯淵是整個西線戰場的總指揮,相當於元帥級的人物,他的猝然戰死,讓曹軍上下無不震怖(三軍皆失色),大家惶恐不已,不知道該怎麼辦。
原丞相府秘書長(丞相長史)杜襲此時在漢中任督軍,曾在曹丕五官中郎將府擔任過治安處處長(門下賊曹)的郭淮此時在夏侯淵軍中當司馬,他們二人收斂散卒,號令全軍說:“