不久,曹洪领兵到了汉中。张郃自告奋勇,要取巴西郡。曹洪道:“巴西有张飞把守,不可轻敌。”张郃便立了军令状,领兵三万,扎下三个大寨。张飞拨五千精兵让雷铜先去埋伏停当,自己引一万军与张郃交锋。战至二十余回合,张郃后军大乱,原来是雷铜领了伏兵出击。张郃不敢恋战,拨马回走,被张飞从后掩杀,曹军大败。此后,张郃只得坚守不出。
张飞多次搦战,张郃并不迎战。张飞于是在山前扎寨,每日饮酒痛骂。刘备得报大惊,忙与诸葛亮商议。诸葛亮笑道:“原来如此!军中恐怕没有好酒,可多送美酒给张将军。”便命魏延押酒,前往相助。
张郃在山顶望见张飞连日饮酒,令二小卒摔跤为乐,旁若无人,怒道:“张飞欺我太甚!”便乘着月夜领兵劫寨。张郃到了寨前,远远见张飞帐中灯火通明,正在饮酒,便直杀入中军。见张飞仍端坐不动,一枪刺倒——原来是个草人。急回马时,背后一将圆睁环眼,声如巨雷——正是张飞!两将在火光中战到三五十回合,张郃只盼两寨来救,谁知早已让魏延、雷铜占了。又见山头火起,张飞军已袭了营寨。张郃无奈,只得带了败军退守瓦口关。张飞、魏延乘胜追击,夺了瓦口关。张郃只带着十余残兵去见曹洪。曹洪大怒,要杀张郃,被郭淮劝住。于是命张郃转攻葭萌关。
葭萌关守将孟达忙向成都告急。诸葛亮道:“必须请来翼德,方可退得张郃。”帐下黄忠听了,厉声叫道:“军师为何轻视众人!我愿去斩张郃首级!”诸葛亮道:“将军虽然英勇,但年事已高,恐怕不是张郃对手。”黄忠听了,取来架上大刀,舞动如飞;又取来硬弓,接连拉断两张。诸葛亮便让严颜同他去救葭萌关。赵云进谏,诸葛亮道:“你以为二人已老,不能成事,我料汉中必定会由此二人获得。”
孟达见了黄忠、严颜,心中也暗笑诸葛亮不会用人。黄忠对严颜道:“你见了众人神情吗?他们笑我俩年老。我们偏要建立奇功,让众人心服。”
次日,黄忠出阵。张郃大笑:“你这把年纪,还能打吗?”黄忠大怒,舞刀便上。战到二十余回合,忽然背后喊声大起,原来严颜从小路绕到张郃军后。张郃大败,后退八九十里。
曹洪忙派夏侯尚、韩浩二人来助张郃。黄忠探得前面不远天荡山是曹军囤粮之处,便让严颜领一支军,吩咐如此如此。当日对阵,黄忠出马力战夏侯尚、韩浩二将,各斗了十余回合,黄忠败走二十余里。次日黄忠又出阵,战数回合,又败走。张郃怕中了黄忠之计,向夏侯尚进谏,夏侯尚道:“你如此胆怯,难怪屡战屡败!如今休再多言,看我二人建功!”次日再出战,黄忠又败,连丢了数座营寨。二将一路追到关下。刘备闻讯,忙派刘封前来相助,黄忠笑道:“这不过是老夫骄兵之计。今夜请看我杀敌!”
当夜二更,黄忠引五千军直开关下。夏侯尚等人轻敌并未防备,被黄忠攻破营寨,长驱直入,人马死伤无数。张郃等人忙退到天荡山上。接近天明,黄忠已连夺三寨。黄忠一路紧追不舍。到了山下,黄忠仍不停步。韩浩杀下山来,被黄忠接住,一刀砍了。此时半山火起,原来是严颜见黄忠追到,来烧曹军粮草。严颜烧了粮草,往山下直冲。张郃等人被前后夹击,只得到定军山投奔夏侯渊。
刘备大军进了葭萌关,厚赏黄忠、严颜。黄忠要乘胜去取定军山,诸葛亮道:“夏侯渊非张郃可比,将军未必能胜。我想去荆州请来云长,方可去攻。”黄忠道:“军师说我年老,我如今不用副将,只带本部三千军马,定斩夏侯渊。”诸葛亮见他如此说,便让法正监军同去。黄忠走后,诸葛亮又让赵云领兵暗中接应。
却说曹操得知张郃等人连败,点起四十万大军亲征汉中。大军到了南郑,
曹操写信催促夏侯渊出战。黄忠部将陈式见夏侯尚出战,忙上前交锋。夏侯尚败退,陈式紧追不舍。忽然夏侯渊从背后杀出,陈式被活捉了去。黄忠用法正的步步为营之计,一营只住几日便往前推进。夏侯渊命夏侯尚出战,被黄忠只一回合便活捉回营。两家走马换将,各自换回陈式、夏侯尚。
到了定军山下,法正道:“定军山西有一座高山,可以察看定军山虚实。将军取了此山,定军山便在掌握之中。”于是黄忠连夜攻上山顶。法正让黄忠率军守在半山,自己在山顶。约定以旗为号,举白旗则按兵不动,举红旗则全力出击。
夏侯渊见黄忠占了对山,张郃谏夏侯渊坚守,夏侯渊不听,分兵围在山下叫骂挑战。黄忠只是不理。到了午后,法正见曹军锐气已失,多下马休息,便将红旗一招。黄忠一马当先,驰下山来。夏侯渊措手不及,被黄忠赶到麾盖下,大喝一声,犹如雷鸣,黄忠手起一刀,将夏侯渊砍为两段。张郃领败军退走,又被赵云拦住杀了一阵。
曹操闻夏侯渊死,放声大哭,亲率二十万大军至汉水下营,要为夏侯渊报仇。诸葛亮便派黄忠、赵云前去劫夺粮草。黄忠急于立功,与部将张著领兵先去劫粮。黄忠到了北山,正与张郃混战,徐晃赶到,将黄忠团团围住厮杀。张著正要走脱,也被文聘截住。
赵云不见黄忠回营,命张翼多备弓弩,守住营寨,自己忙领兵去救。赵云挥枪杀入重围,如入无人之境。张郃、徐晃心惊胆战,不敢迎敌。赵云救了黄忠,又来救张著。
曹操大怒,亲率众将来赶赵云。赵云回到本寨,让军士放下军旗,大开寨门,自己挺枪立马,站于门前。曹军赶来,不敢轻进。曹操赶到,喝令进兵。赵云全然不动,曹军转身就回。赵云把枪一招,弓弩齐发。曹军不知底细,慌忙逃命,自相践踏,人马死伤无数。曹操只得弃了粮草,回军南郑。
曹操见进军不利,只得退兵许都。诸葛亮乘机分兵不时攻劫,曹操又损了不少兵马。刘备取了汉中,众将都有心推尊刘备为皇帝。刘备再三推辞不过,只得应允先做汉中王。建安二十四年七月,刘备筑坛称王。封许靖为太傅,法正为
尚书令;诸葛亮为军师,总理军国大事。封关羽、张飞、赵云、马超、黄忠为五虎大将;魏延为汉中太守。其余众人都有封赏。