建安二十年曹操得到汉中以后,就匆匆回到了邺城,经过建安二十一年大半年,曹操已基本上稳定了内部,到了这一年十月,他就决定再次南下讨伐孙权。整个建安二十二年曹操除了年初出兵居巢外,其余时间都忙着巩固自己的地位,确立太子人选。
对于建安十九年刚刚得到益州的刘备来说,建安二十年曹操就打下了汉中,着实让他吓了一跳,建安二十一年曹操撤回邺城,刘备则紧锣密鼓地稳定内部,调整部署,到建安二十二年曹操忙着内部事务时,刘备就确定了打下汉中的计划。
长期以来曹操一直在平原地带作战,山地战的经验并不足,原本他对汉中的战略地位有着清醒的认识,但当他亲自来到汉中、看到一望无际的崇山峻岭后,立即产生了畏惧心理,在这里,曹操那种灵活机动的战术似乎都失去了运用的余地,以致他说出张鲁的汉中是个妖妄之地的话来,甚至打算放弃,但刘备及其谋士们对于汉中不这么看。
在曹操撤军以后,法正就对刘备建议道∶ “曹操一举就收降了张鲁,平定了汉中,之所以没有趁势进攻巴蜀,而留下夏侯渊、张郃驻守在那里,本人匆匆北还,这不是他不想也不是力量不足,一定是他内部出现隐忧之故啊。如今,我断定夏侯渊和张邻的才能不敌我们的将帅,我们率军前去,一定能够取胜。一旦占领汉中,再集中精力进行农业生产,囤积军粮,等待时机,上可以消灭敌人,共奖王室,中可以蚕食雍州凉州之地,开疆拓土,下可以固守险要,持久与之对抗。这是上天给予我们的机会,机不可失啊!”刘备深以为然。不过,当时也有人表示反对,儒林校尉周群、后部司马张裕二人都通晓占卜,刘备征询二人的意见,周群回答∶“只能得到土地,却得不到人民,如果以偏师出击,一定会失利,切记切记!”张裕劝谏说∶“不可争夺汉中,一定会失利的。”但刘备不从。
建安二十三年(公元218年)一月,刘备先派平西将军马超、巴西太守张飞及吴兰、雷铜等人率军沿着沮道进攻武都(今甘肃省成县西)。氏族雷定等七个部落一万多帐篷的部众都纷纷响应蜀军。而后,刘备留下军师将军诸葛亮镇守成都,他亲率蜀郡太守法正、翊军将军赵云、讨虏将军黄忠、牙门将军魏延等向汉中杀来。刘备的这一作战思路是∶以张飞等军进攻武都,切断曹军由散关道增援汉中的通道,并将汉中曹军围困于汉中狭小地域,以期予以聚歼。
得知刘备企图夺取汉中,曹操不敢怠慢,派遣都护将军曹洪率领曹军增援武都,并以郎辛毗、骑都尉曹休一文一武辅佐曹洪。曹洪贪财好色是出了名的,曹操对此一清二楚,在出征之前,他特意叮嘱曹休∶“你虽然是参军,却是军中的实际统帅。”曹洪听了曹操的这番话,也很知趣,把军务全权交给曹休处理。
蜀军吴兰、雷铜部先期进抵武都附近,曹洪打算趁蜀军其余各部尚未完成集结之时,进攻吴兰等部,当时,张飞驻扎在固山(今甘肃省成县北),声称将要切断曹军的归路,曹军将领们都疑惑不定。曹休说∶ “敌人如果真想切断我们的退路,一定会偷偷前来,如今,他们先虚张声势,这反而表明了他们根本没有这个打算和能力。我军应当趁其各部尚未完全集结之时迅速向吴兰发起进攻,击破吴兰之后,张飞自然会逃走了。”曹洪采纳了曹休的意见,随即率领曹军向吴兰部发起了猛攻,蜀军大败,临阵斩杀吴兰部将任夔等人。吴兰在败退途中,被阴平氏族强端斩杀,人头送给了曹军。果然,不出曹休所料,三月,张飞、马超也自行撤退了。
刘备亲自率领的军队进驻阳平关(今陕西省勉县西),曹军征西将军夏侯渊、荡寇将军张邻、平寇将军徐晃等部与之相持。张郃驻扎在广石,刘备将一万精锐士兵分为十队,命陈式等将率领这一万精兵切断了马鸣阁道,他则亲自率领大军趁夜向张郃大营发起了猛烈的进攻。张郃率亲兵与蜀军短兵相接,战斗异常激烈,刘备最终无法攻破曹军大营。徐晃奉命前去进攻陈式等部,将其击破,蜀军跳入悬崖而死的数不胜数。
初战失利,不仅西路张飞、马超等部无功而返,就连刘备这边也无法取得突破,这让刘备心急如焚。他给留在后方的诸葛亮写信,要求诸葛亮火速从成都增兵。魏军与蜀军就这样僵持了下来,战争遂变成了持久战。
七月,曹操见汉中诸将无法击退刘备,遂决定亲自率领大军西征。这一年,曹操可谓是四面受敌∶北方有无臣氐的叛乱;东南和西南又要分别监视江东的孙权和荆州的关羽;西又与刘备相持;内部还在应对许都耿纪等人的政变。
十月,就在曹操刚刚来到长安、准备南下汉中之时,南阳地区又发生叛乱,再次打乱了曹操的计划,这又让曹操不得不重新权衡汉中、南阳的价值,对驻军长安犹豫不定起来∶如果失去了南阳,许都将直接受到威胁,而汉中也不一定能打得下来,到那时就糟了。
曹操不敢怠慢,连忙将协防汉中的平寇将军徐晃调往南阳,增援曹仁。
建安二十四年(公元219年)年初,曹仁稳定了荆州局势,让曹操稍稍松了一口气,但与此同时,汉中传来了惊天的噩耗。夏侯渊、张郃、徐晃等人一直苦苦与刘备缠斗,刘备是铁了心要打下汉中,举倾国之力与曹军死磕,而夏侯渊、张邻不仅没有等来曹操的援军,相反,由于南阳地区的叛乱,曹操不得不把徐晃从西线抽出调往南阳,以应对即将大举北上的关羽,增加荆州防御的纵深,相应地,汉中夏侯渊、张郃所部的压力就更大了。
当时,张郃率军驻扎在阳平关附近的广石(疑为走马岭上),而夏侯渊则率领大军驻扎在走马岭侧后方的阳平关,曹军在汉水南岸亦构筑有鹿角等防御工事,这里当为马鸣谷,过去由徐晃驻守,刘备在刚刚进抵阳平关时也曾命令陈式等率领一万精兵企图打通这条通道,迂回到阳平关的背后,突进到汉中腹地,但被徐晃击退,如今,徐晃已被曹操抽调到南阳,于是,刘备故技重演,决心丢下眼前的张郃,亲自率军南渡汉水,沿着汉水南岸的定军山一路东进,突进到曹军防御阵地的侧后方,诱使曹军离开正面坚固的防御阵地,企图在运动中歼灭曹军。
刘备的这一举动也非常胆大,等于丢掉了自己的后方,去进攻敌人的后方,此时双方的情况与多年以后诸葛亮最后一次北伐时在渭河南岸与司马懿对垒时的情况如出一辙,但彼时的诸葛亮没有此时刘备难得一见的置之死地而后生的勇气——显然,此时的曹操不在汉中,这给了刘备自信。
建安二十四年一月,刘备率领大军渡过沔水(汉水),沿着沔水南岸继续东进,来到了定军山,扎下了营垒。果然,夏侯渊不能坐视蜀军的举动,也与张郃一起率军从前方阵地沿汉水北岸向东移动。而后,曹军也南渡汉水,在汉水南岸背水结营,由张郃守卫东围,夏侯渊亲自率领轻装部队守卫南围。刘备对张郃心存忌惮,遂命令蜀军向张郃的东围发起了猛烈的进攻,蜀军居高临下,喊杀声响彻山谷,战斗异常激烈。夏侯渊担心张郃有失,就把自己的部队分出一半增援张郃。刘备又命令蜀军烧毁南围鹿角,夏侯渊率领四百士兵从军营出来救火。法正在山上望见后,说∶“可以发动攻击了!”于是,刘备命令黄忠率军下山发起进攻,夏侯渊命令部队与蜀军交战,然而,众寡不敌,蜀军绕到了这股曹军的背后,冲入曹军营,夏侯渊在混战中为黄忠所杀,曹军大败。刘备即拜黄忠为征西将军。
主帅被杀后,曹军人心大乱,张郃也只好率领残兵败将退回汉水北岸,撤回了阳平关。
第二天,刘备打算乘胜率军北渡汉水,朝曹军发起总攻。曹军众将认为寡不敌众,应当在汉水北岸列阵,阻挡蜀军登岸。郭淮说道∶“这是示弱于敌,不足以挫败敌人,不是良策。不如远远地离开河岸列阵,引诱敌人渡河,等到他们渡过一半时再纵兵发起攻击,一定能将其击败。”曹军列阵后,刘备心生疑窦,遂不敢渡河,于是,曹军坚守在汉水北岸,显示出绝不撤离汉中的决心。郭淮将汉中的战况向长安的曹操报告后,曹操非常赞赏,派人授予张郃符节,让郭淮继续担任张郃的司马。《华阳国志》记载,败报传来,曹操说∶“我就知道刘玄德根本做不到这一步,肯定是有人教他的!”又说道∶“我把天下的奸雄们都一网打尽了,怎么没网罗来法正!”
汉中曹军在苦苦支撑,曹操不能再犹豫了,而此时南阳方面也已经暂时稳定了下来,于是,他决定从长安出发,支援汉中。由于情况紧急,不容他再从散关道长途跋涉了,他决定从褒斜道直接南下。但褒斜道非常险要,曹操担心被刘备截击,先派遣先头部队占领各个险要地带,确保大军畅通无阻。
建安二十四年(公元219年)三月,曹操率领大军翻越秦岭,来到汉中,与张郃的军队会师。定军山大捷让刘备信心倍增,他说道∶“曹操虽然亲自前来,也无能为力了,我一定能拿下汉中!”话虽这么说,但刘备也知道自己不是曹操的对手,遂将部队收拢起来,固守不战,想拖死曹操。
曹军在北山(今陕西省勉县北天荡山)下运粮,军粮有数千万布袋,刚刚升任征西将军的黄忠还想再立一功,他觉得能夺取曹军的这些军粮,遂率领本部人马以及赵云的大部分军队渡过汉水前去抢粮。赵云左等右等却不见黄忠返回,遂率领数十名骑兵从营垒中出来,迎接黄忠等人。果然,曹操下令曹军悉数出动,其先锋部队正遇到赵云带的这数十人,双方正在鏖战,赵云边打边撤,曹军被打散后,又聚拢起来。等赵云撤回汉水南岸的营垒后,曹军也渡过汉水,尾随而至。张翼想紧闭营门,赵云回到大营后,下令大开营门,偃旗息鼓。曹军来到营门前,担心有伏兵,大为惊慌,匆匆北撤,而赵云见状,即下令军中擂起战鼓,在营中用强弩向曹军射来,曹军顿时乱成一团,自相践踏,落入汉水淹死了很多人。第二天一大早,刘备亲自下山巡视赵云的军营,赞叹道∶“子龙一身都是胆啊!”
曹操在汉中待了一个月,刘备却一直固守不战,曹军粮运不继,且逃亡的士兵很多。此时的汉中对于曹操而言,就像一个食之无味、弃之可惜的鸡肋骨。曹操在通盘考虑了江东蠢蠢欲动的孙权、荆州蓄势待发的关羽、统治基础十分薄弱的陇西以及尚不太平的北方之后,决定彻底放弃汉中。当时,军官询问曹操当天的口令,曹操随口答道∶“鸡肋。”主簿杨修听后,即开始收拾行李,有人吃惊地问道∶“你怎么知道大人打算撤军”杨修回答“鸡肋这东西,扔掉了可惜,吃起来又没什么肉,把它比作汉中,所以我知道大王心里是想撤军了。”
果然,到了建安二十四年五月,曹操下令曹军全部撤离,自此,刘备遂占领了汉中。
曹操这次撤离汉中撤得非常彻底。
在撤离汉中之前,曹操不惜大踏步后撤,将防线放到关中与汉中的要冲陈仓。陈仓既是散关道的起点,又可以屏护陇西方向,战略地位非常重要。相对于武都而言,汉中曹军撤出后,驻扎在武都的曹洪所部就孤悬于外,势必被刘备吃掉,而且还令兵连祸结,与其这样,不如干脆退得远远的,把漫长的补给线留给对手,确保自己立于不败之地。
决定已下,曹操在从汉中撤军的同时,又命令征蜀护军曹真前往武都,将曹洪、曹纯所部迎回了陈仓,命其驻扎在那里。在决定放弃武都后,曹操转而担心刘备拿下武都后,会吞并武都氐族部众,进而壮大自己,威逼关中。他向雍州刺史张既问计,张既回答∶“可以劝说百姓北上,到有粮食吃的地方去谋生,先到的厚赏,这样一来,先来的得到了好处,人们就会纷纷效法了。”于是,曹操听从了,命令张既前往武都,将五万多落氏族部众迁出武都,安置在扶风、天水一带。
刘备得到汉中后,即派遣宜都(今湖北省宜都市)太守孟达从秭归向北进攻房陵(今湖北省房县),杀死曹操任命的房陵太守蒯祺;又派遣养子副军中郎将刘封自汉中从汉水顺流而下,统率孟达的军队,与孟达一起进攻上庸(今湖北省竹山县),曹操任命的上庸太守申耽投降。申耽把妻子儿女送往成都当人质,刘备任命申耽为征北将军,领上庸太守,以申耽的弟弟申仪为建信将军、西城太守,并晋升刘封为副军将军。而后,刘备又发兵武都,很快就占领了空无一人的武都城。至此,在刘备占领汉中后短短数月之间,就占领了武都郡、新城郡、上庸郡和魏兴郡(今陕西省安康市)。
曹操四月从汉中撤回关中后,并没有立即东返,他一直在观察着刘备以及陇西的局势。如果刘备在得到汉中以后,立即再发兵北上,煽动陇西各族,刚刚安定下来的陇西地区势必再度陷入混乱,届时,关中也将岌岌可危。况且,在陇西更西的河西地区也不安定。
一生都在颠沛流离中度过的刘备,在定军山一战中终于击败了曹军,继而又逼退了劲敌曹操,全取了汉中,这一系列的胜利也大大地刺激了他。史称,到了这一年的七月,以平西将军马超、左将军长史镇军将军许靖、营司马庞羲、议曹从事中郎军议中郎将射援、军师将军诸葛亮、荡寇将军汉寿亭侯关羽、征虏将军新亭侯张飞、征西将军黄忠、镇远将军赖恭、扬武将军法正、兴业将军李严等一百二十名大臣推举刘备称王,于是,刘备自称汉中王,在沔阳设置祭坛,举行盛大的典礼,宣读了准备送给汉献帝的奏表后,即接受了玉玺、王冠,并将左将军、宜城亭侯印绶交还给了朝廷,立儿子刘禅为王太子,并提拔牙门将军魏延为镇远将军、汉中太守,镇守汉中。
定军山和黄老爷子是渊渊一生的梦魇[笑着哭][呲牙笑]