刘备并不因为吴兰被杀、张飞退军,而放弃他的攻取汉中的计划。他自己也已经率领了十万左右的兵,到达前方,向着阳平关进军(当时的阳平关,在今日陕西沔县的西北,不在宁羌县的西北)。
在他左右当智囊的是法正。诸葛亮必须留在成都,坐镇后方。
刘备一举而占领了阳平关,在阳平关停顿了一些时候,于建安二十四年的春天,带军队向南,渡过汉水的一个支流沔水,依着当地的山势,逐步向南移动,选定了定军山的山坡之下扎营。
夏侯渊不知是计,用了全力来冲刘备在这山坡之下新扎的营,没想到刘备已经在事先命令黄忠率兵埋伏在定军山山头之后。黄忠于曹军冲击刘军正冲得激烈之时,突然“乘高鼓噪”而下,给曹军以侧击与俯击,不仅把曹军杀得溃不成军,而且当场杀掉了作为曹军主帅的夏侯渊,连带也杀了曹操所任命的“益州刺史”赵颙。
曹操接到报告,亲自带了大军由长安经斜谷前来,准备与刘备拚个你死我活;很快,就到达了“遮要”。
刘备却不肯、也不敢与曹操拚,守住了阵地,说什么也不把自己的将士放出来与曹军交锋。
就这样,曹军天天喊打,刘军理也不理。两军相持了一个多月,刘备收获到心理作战的成果:曹军的兵士,纷纷逃亡,逃亡得一天比一天多。原因不是设有粮食,曹军的粮食多得很,而且后方也不曾被切断。原因是什么呢?是刘军的这一边懂得揭发曹操的真面目:“名为汉臣,而实为汉贼。”每逢曹、刘对垒,常常在曹的后方有人作刘的内应。以前,有昌豨与雷绪;以后,在请葛亮第一次出兵祁山之时,又有南安、天水、安定,三个郡的官吏与人民,一齐起而响应诸葛亮的号召。
曹操决定下令撤军。走前,他说了一句“阿Q式”的聊以解嘲的话:“我本来就不相信刘备有如此的能力。他身边现在有了人才(所指的,是法正)。”
以前,他在赤壁乌林被孙刘两军烧去他的兵船,杀得他的军队狼狈而逃之时,他也说两句“阿Q式”的话:一句是:“船是我自己烧的。”另一句是:“孤不羞走(我并不认为退走是难为情的事)。”
曹操不仅撤退了他带来的大军,也下令所有滞留在汉中三郡的大小部队,一概离开。
于是,刘备占有了汉中三郡:原来的汉中郡,加上曹操所分设的西城郡与上庸郡。
汉中郡于定军山之战以后,立刻被占领;西城郡也没有什么抵抗。上庸郡远在今日的湖北西北部,曹操的太守申耽不肯望风而降。刘备派了养子刘封与宜都太守孟达,对申耽用武力威胁,申耽才终于投降。
刘备不仅仍叫申耽当上庸太守,而且也任命了申耽的弟弟申仪,当西城太守。刘封由“副军中郎将”被升为“副军将军”。另一个荆州的新设的郡房陵,也已经破孟达于攻击申耽以前,打了下来,房陵郡的太守蒯棋,死在孟达之手。
这一次定军山之役,倘不是黄忠把下山俯冲的作战命令,执行得有声有色,则刘备能不能获胜,大有问题。因此,刘备立刻把黄忠由“讨虏将军”升为“征西将军”。黄忠与刘备的关系,也慢慢地比得上关、张二人与刘备的关系了。
京剧之中的《定军山》,词儿好。它使得黄忠的英名,为将近两千年后的现代中国人所家喻户晓(美中不足的是:把黄忠描写成主将。他当时不是主将,主将是刘备自己)。
刘备—生打过了不少次的仗。真正是由他本人指挥所打胜的,次数不多。这一次定军山之战,是最精彩的一次。赤壁乌林之役,负责指挥指挥主力(孙军)的,是周瑜。后来,攻破刘璋的雒县是围了很久才攻破的。在成都,并未破城,是刘璋自己开城投降。早年,帮陶谦守郯城,守住了。那只是与曹操的一次小接触。