在前往阳平关途中,张鲁派出五官掾为使者向曹操投降,这让曹操欣喜若狂,认为汉中之战即将顺利结束。不过,当曹操来到阳平关下才发现,张鲁大军的主力早已在此摆开阵势,准备与曹军大战一场。这让曹操感到非常的疑惑。原来,得知曹操大军一路上节节胜利的消息之后,张鲁心中胆怯,派出五官掾前往曹营投降。
但就在使者离开汉中之后,张鲁的弟弟张卫对张鲁不战而降的做法表示强烈不满,坚决主张抵抗。张鲁无奈,不仅答应了张卫的请求,同时还任命张卫为统帅,率部在阳平关排兵布阵进行防御。张卫率大将杨昂、杨任率领数万人马抵达阳平关之后,立即拦山修筑了十多里长的石墙,将主力驻扎于阳平城,打算将曹操挡在阳平关前。
眼看张鲁摆出了一副决战的架势,曹操不敢怠慢,立即与手下商议对策。原凉州从事及武都氐叛军的降将指出,阳平城距离南北山距离较远,难以固守,认为只要拿下阳平城就可攻占阳平关。曹操信以为真,决定在战前亲自对战场地形进行勘察。
不过经实地勘察之后,曹操才发现,这里的地形与原凉州从事及武都氐叛军的降将介绍的大相径庭,阳平关不仅地势险要,易守难攻。阳平城也修筑的非常的坚固,距离南北两山的距离并不远,增援非常顺利、快捷。曹操十分清楚,他即将面临的将是一场恶战。战事开始之后,曹军对阳平关发动了多次猛攻,但由于山势陡峭、难以攀爬,加上敌军防守严密,连番进攻非但毫无进展,曹军士兵却伤亡惨重,更可怕的是,曹军因战线过长,粮草供应紧缺,军粮即将告罄。
眼看局势不利,曹操的决心产生动摇,打算撤军返回。但他下达撤军的命令后,西曹掾郭湛表示反对。郭湛认为:张鲁派遣使者投降,已经证明了他的诚意。如今尽管张卫在此负隅顽抗,但他毕竟不是张鲁本人亲自前来,只能算作是一支偏师。只要将张卫打败,汉中的战事一定会很快结束。如果现在不战撤军,以后再也不可能出现这样的有利局面了。
不过,郭湛的意见并未能完全说服曹操,曹操犹豫不决,大军仍然按照他的命令撤退。不过,就在撤退的途中,一场意外不仅打乱了曹操的原定计划,同时也使得汉中之战的胜负发生巨变。