在前往陽平關途中,張魯派出五官掾為使者向曹操投降,這讓曹操欣喜若狂,認為漢中之戰即將順利結束。不過,當曹操來到陽平關下才發現,張魯大軍的主力早已在此擺開陣勢,準備與曹軍大戰一場。這讓曹操感到非常的疑惑。原來,得知曹操大軍一路上節節勝利的消息之後,張魯心中膽怯,派出五官掾前往曹營投降。
但就在使者離開漢中之後,張魯的弟弟張衛對張魯不戰而降的做法表示強烈不滿,堅決主張抵抗。張魯無奈,不僅答應了張衛的請求,同時還任命張衛為統帥,率部在陽平關排兵佈陣進行防禦。張衛率大將楊昂、楊任率領數萬人馬抵達陽平關之後,立即攔山修築了十多里長的石牆,將主力駐紮於陽平城,打算將曹操擋在陽平關前。
眼看張魯擺出了一副決戰的架勢,曹操不敢怠慢,立即與手下商議對策。原涼州從事及武都氐叛軍的降將指出,陽平城距離南北山距離較遠,難以固守,認為只要拿下陽平城就可攻佔陽平關。曹操信以為真,決定在戰前親自對戰場地形進行勘察。
不過經實地勘察之後,曹操才發現,這裡的地形與原涼州從事及武都氐叛軍的降將介紹的大相逕庭,陽平關不僅地勢險要,易守難攻。陽平城也修築的非常的堅固,距離南北兩山的距離並不遠,增援非常順利、快捷。曹操十分清楚,他即將面臨的將是一場惡戰。戰事開始之後,曹軍對陽平關發動了多次猛攻,但由於山勢陡峭、難以攀爬,加上敵軍防守嚴密,連番進攻非但毫無進展,曹軍士兵卻傷亡慘重,更可怕的是,曹軍因戰線過長,糧草供應緊缺,軍糧即將告罄。
眼看局勢不利,曹操的決心產生動搖,打算撤軍返回。但他下達撤軍的命令後,西曹掾郭湛表示反對。郭湛認為:張魯派遣使者投降,已經證明了他的誠意。如今儘管張衛在此負隅頑抗,但他畢竟不是張魯本人親自前來,只能算作是一支偏師。只要將張衛打敗,漢中的戰事一定會很快結束。如果現在不戰撤軍,以後再也不可能出現這樣的有利局面了。
不過,郭湛的意見並未能完全說服曹操,曹操猶豫不決,大軍仍然按照他的命令撤退。不過,就在撤退的途中,一場意外不僅打亂了曹操的原定計劃,同時也使得漢中之戰的勝負發生巨變。