定军山不仅山势险峻易守难攻,而且还具备丰富的水源,更为关键的是夏侯渊并未在此地布置守军。
建安二十四年正月,刘备留下高翔继续驻守在阳平关外吸引曹军注意力,而自己则亲率主力南渡沔水,修筑栈道开凿山路,然后翻越了杳无人烟的米仓山脉,在定军山和兴势山山麓扎下营寨。
此举其实非常冒险,如果阳平关外的高翔被击溃,那么进出定军山的道路就会被切断,刘备的大军就会成为一支上天无路下地无门的孤军。
幸好夏侯渊在得知刘备大军已绕进汉中之后,竟然不是率主力出关联合张郃夹击高翔,断了刘备的粮道,而是选择留下徐晃继续镇守阳平关,自己则带着张郃赶到定军山下扎起了营寨,并且修筑营垒和鹿角,意图阻止蜀军继续向北推进。
而且夏侯渊的营寨距离定军山很近,定军山上的刘备只需站在山坡上就能清楚看到曹军的动向,这为他自己今后的身死买下了隐患。
夏侯渊亲率主力驻守在南面,而张郃则带着本部兵马驻守在东面。
法正见张郃兵少,便让刘备先派兵攻打东围,打得张郃不得不向夏侯渊求援。
夏侯渊将分拨一半兵马支援张郃,自己继续固守南线。
法正见成功诱使夏侯渊分兵,便让讨虏将军黄忠预先埋伏在半山腰上,并让刘备亲自带兵去烧掉南围营前的鹿角。
随后刘备派兵偷袭走马谷,放火烧毁了曹军阵地前的防卫工事鹿角,夏侯渊亲自率四百军士出营救火、修补鹿角。此时,法正看准时机,见夏侯渊正处于劣势,提议全力进攻夏侯渊,刘备于是命黄忠居高临下从后方擂鼓突袭,夏侯渊猝不及被黄忠斩杀,曹军溃败。
夏侯渊亲自率四百亲兵出营救火、修补鹿角,但是他的中军大帐距离前沿鹿角足足有十五里远,给了蜀军阵斩大将的大好机会。
这样的好机会法正当然不会放过,他看准时机,只轻描淡写地说了三个字:“可击矣!”
一时间鼓号齐鸣,呐喊声响彻云霄,黄忠在得到命令后,立马从半山腰杀出,电光火石之间便已冲到了曹军面前。
猝不及防之下,征西将军夏侯渊和他的四百亲兵被全部斩杀,定军山上的蜀军主力紧随黄忠之后,乘胜猛攻曹军的南部营寨。
曹军主帅战死,群龙无首的情况下,被蜀军杀得大败,仅剩一些残军败将狼狈地逃往了汉水北岸。
张郃见大事不妙,连夜退往阳平关与徐晃会和,至此汉水以南的全部土地尽归刘备所有。
可是当黄忠提着夏侯渊的人头前来请功时,刘备却皱着眉头说道:“要杀就杀张郃,杀夏侯渊有什么用呢?”
夏侯渊虽然是曹军在西线战区的统帅,可是却不被刘备放在眼里,在曹军中的威望也不如张郃。
司马郭淮和督军杜袭收敛散卒,郭淮见状,便说:“张将军是国家的名将,刘备也忌惮他。现在形势紧迫,只有张将军才能安定军心。”
于是众人推举张郃出任主帅,指挥士兵,布置营寨,原本因为主帅战死的曹军军心逐渐安定下来。
不久,曹操遣使令张郃假节。刘备欲渡汉水来攻,见魏军在汉水以北列阵相迎,刘备于是放弃渡河,隔水相持。