平定了许都之乱之后,曹操本想亲自去汉中督战,可代郡北部乌桓又趁机造反,曹操只得令三子曹彰领兵前去平叛,曹彰领兵走后不久,宛城南阳人侯音因不满曹操税务太重聚众杀死太守起兵造反,欲与镇守荆州的关羽联合威协许都,曹操大惊,又慌忙急令镇守襄阳的曹仁出兵镇压,一切安排妥后,曹操这才亲率大军出邺城西进长安,在九月份到达长安,曹操并没有继续向汉中进军,他担心侯音与关羽会合曹仁不敌,这才坐镇长安,指挥汉中与塞北及南阳的战事。
而此时向阳平关挺进的刘备大军已兵至剑阁,刘备担心归附曹操阴平的氐王强端会过马鸣阁偷袭自己的后路,于是刘备便令陈式引五千兵马前去占领马鸣阁,以阻断强端与曹操的联系。 马鸣阁是白水之边阴平通往关中的一个山涧要塞,在剑阁的西北方向,离剑阁不远。其道路是在峭壁上架木为梁,一侧是峭壁,一侧为深谷河流,牵马经过时马都会惊得长鸣不止,因而叫马鸣阁。 陈式引兵走后,刘备进入阳平关地界,刘备听从法正的见意先去攻打阳平关西南的广石,广石与阳平关呈犄角之势,若取阳平关最好的策略就是先把广石这个犄角给他砍下。 然而出乎刘备意料的是,镇守广石的是魏国名将张郃。张郃在瓦口关被张飞击败后退守广石,张郃也是一名久经杀场的老将,他见刘备引大军来攻,只坚守不出,日夜防范,刘备攻了多日也未攻下,倒伤亡了不少兵士,刘备一筹莫展。 再说阳平关守将夏侯渊,夏侯渊听说刘备来犯,又探听到刘备令陈式引一军去占领马鸣阁,于是夏侯渊便令徐晃引一军前去攻打马鸣阁。徐晃引一军赶到马鸣阁,但见陈式在马鸣阁要塞之上分十营把守,心中大喜。那么陈式为什么要把这五千人马分十营把守呢?这岂不兵力分散?其实这也有陈式的难处,一是马鸣阁栈道狭窄,无法立营扎寨;二是马鸣阁前后道路都在山腰上,没有宽阔的地方,再者陈式也不懂得怎样排兵布阵,他根本就没料到曹军会来的这么快,更没料到来的是大将徐晃,陈式哪里是徐晃的对手,两个人交手不到十合,陈式便拨马败走,徐晃挥军掩杀,马鸣阁道路狭窄,陈式军拥挤不得过,被杀死的、跌落山谷坠入河流的不计其数,陈式弃马而走,最后只带了几百人逃回成都。 徐晃大获全胜,随即撤回阳平关。 刘备攻打广石几十天没攻下,又听闻陈式几乎全军覆灭,刘备心恢意冷,只得撤兵去攻打阳平关,但阳平关更是难攻,至年底,阳平关依旧在夏侯渊的手中,而此时刘备的兵马损失已过半,粮草也告罄,刘备不得不急书成都,要镇守成都的诸葛亮发兵救援。 诸葛亮收到刘备的救援信后犹豫不决,发兵去救援吧,西川才取下不久,民心还未归化,担心川中有变,不救援吧,这是刘备的亲笔信,看来刘备确实遇到了困难,思量许久,诸葛亮便把功曹杨洪找来询问计策。杨洪道,“军师,汉中乃益州的咽喉之地,是益州的门户,如果汉中被曹操占领,则曹操会直接威协到我益州,益州则会不安全了,当今之事,益州的男子应当兵去前方作战,女子应在后方供应运输,以全力支持汉中之战,这样才有希望拿下汉中,不可有丝毫的犹豫。”诸葛亮听闻后点头称是,于是诸葛亮开始调兵遣将,调运粮草,前去支援刘备。同时诸葛亮很赞赏杨洪,给刘备写信推荐杨洪为蜀郡太守,因蜀郡太守法正正与刘备在汉中作战,蜀郡太守空缺,诸葛亮这才推荐杨洪前去上任。 援军及粮草到达刘备的大营后,刘备又要想去攻打阳平关,法正献计道,“主公,阳平关固若金汤,又加夏侯渊防守严密,夏侯渊只坚守不出战,不宜攻取,我们不如放弃阳平关,南渡汉水,去取汉水之边的定军山,定军山是通往南郑的必经之路,我们占据定军山,分两路去佯攻南郑,这样夏侯渊必出关来阻挡我们,只要夏侯渊出关,我们便有机会攻取阳平关。”
刘备大喜,即刻采纳了法正的见意,大军放弃阳平关南渡汉水,占领汉水之边的定军山,在山前扎下营寨,欲前往攻打南郑。 在阳平关据守的夏侯渊听闻刘备南渡汉水占领了定军山大惊,料定刘备以定军山为据点前去攻打南郑,南郑是汉中的治所啊,是汉中的经济、文化中心,其战略地位远高于阳平关,夏侯渊害怕刘备去攻打南郑,于是令郭淮与徐晃守阳平关,自己率领张郃前去阻击刘备。 夏侯渊在刘备大营的前方扎下东、南两个营寨,各设鹿角以阻挡刘备。东边营寨鹿角由张郃把守,南边营寨鹿角由自己把守。 刘备见夏侯渊如此扎营喜出望外,他派赵云、魏延等引两万多人马分波次去攻打张郃的营寨,自己则率黄忠丶法正等少部兵马去攻夏侯渊的营寨,接连数日,张郃抵挡不住,向夏侯渊求救,夏侯渊急调一部分人马前去支援张郃。 此时法正见夏侯渊分拨兵马去救援张郃,便令对夏侯渊的营寨停止攻击。夏侯渊见刘备撤兵,忙组织几百人前去修复被刘备兵攻散的鹿角,也就在此时,法正急令黄忠率军急速杀回,黄忠一马当先,由山坡上冲下来,转眼间便冲到夏侯渊的寨前,夏侯渊还不及上马,便被黄忠一刀劈为两半,当场殒命。 刘备亲自擂鼓,号角齐鸣,全军杀进夏侯渊的营寨,将夏侯渊的兵将尽皆杀散,然后又挥军杀向张郃的营寨,张郃不能抵挡,落慌逃回阳平关。 夏侯渊一死,曹军震惊,徐晃、郭淮等为了稳定军心,推举张郃统领汉中诸军,张郃临危受命,一面组织力量加强对阳平关的防御,一面派人去长安飞报曹操。 刘备在取得定军山的胜利之后率军又杀向阳平关,在汉水的南岸扎营准备渡河。徐晃建议前去阻击,郭淮则不同意,郭淮道,“如果我们在汉水边阻击刘备,刘备有可能对我们发起强攻,对我们不利,我们不如远水扎寨,发现刘备军正在渡汉水时出其不意地对他发动攻击,这样才能击退刘备。”
果然,刘备见曹军在远离汉水的地方扎营,没敢渡过汉水。 曹操在听到夏侯渊被斩的消息后大惊,他再也坐不住了,即刻从长安起兵,兵发汉中,发誓要为夏侯渊报仇雪恨!