期間,想要搶先奪取宛城,據城退敵的曹軍卻連攻宛城不克,三軍統帥的曹操一度在陣上披堅執銳、親自督戰,命令中軍精銳步卒也發動進攻,結果還是沒有拿下劉備等人率兵死命據守的宛城,反而是侄子曹安民被城中石砲擊中頭顱,當場陣亡。
緊接著,在隨後關西敵將楊豐伺機發動的一場夜襲中,軍中部分新卒發生騷亂,曹操長子曹昂臨危不懼、領軍奮勇反擊,卻不幸在戰場上被流矢射中,傷勢嚴重,抬回帳中時已經昏迷不醒,軍中瘍醫搶救了多時,終究還是沒能夠挽回他的性命,曹家的千裏駒,就這樣出師未捷身先死,當夜歿於軍中。
可是即使是在這種戰況慘烈的局勢麵前,決意要攻克宛城,去除許都南麵威脅的曹操內心仍然沒有動搖,他強忍著新喪子、侄之痛,激勵帳下吏士,撫慰軍中傷殘,使得曹軍愈挫愈勇,化悲憤為力量,在連日作戰中反敗為勝,逐漸在戰陣上對敵軍取得了明顯的優勢,先後擊敗了宛城外的文聘、楊豐兩支援軍。
再之後,獲取戰陣勝利的曹操沒有再貿然強攻宛城,而是奇兵迭出,派遣步騎截擊荊襄後軍張允督運運往宛城的輜重車隊,大敗荊襄兵馬,燒毀了荊襄後軍運送的全部糧草輜重,殺得張允等人丟盔卸甲、抱頭鼠竄,僅得身免。
通過這一場場勝利,曹操率領的曹軍全麵掌控了戰場的主導權,而得知輜重盡失的劉備為了避免在宛城流幹自己的血,主動放棄了宛城,冒死突圍,會合文聘的敗軍,退保樊城。
關西的楊豐軍眼見局勢不利,害怕再次被曹軍擊敗,也連夜燒營撤退,循武關道退往關中。
襲擾曹軍後方的張遼一支偏師在潁川境內遭遇了於禁所部,兩軍在潁川境內發生了多次小規模的交戰,勝負未分,之後在得知了南陽各軍敗退之後,張遼不敢戀戰,連忙脫離了敵將於禁的糾纏,引軍兼程退回河南地。
至此,建安七年的南陽爭奪戰,以曹軍擊敗荊襄、關西兵馬,獲得勝利落下帷幕,曹操留下李通、趙儼、杜襲等人率領兵馬重新營築宛城防線,解除了許都朝廷南麵的威脅。
此戰著實出乎驃騎將軍府的意料,原本在閻行等人看來,曹操新敗之後,為了補充兵力,積蓄糧秣,短期內一定不敢再發動大規模的進攻,可沒想到曹操不僅是僅隔一年就發動了收複南陽的戰役,而且意誌堅毅,在前期付出慘重代價的情況下也毫不動搖,最終成功攻下宛城,奠定了南線戰事的勝利。
不過世事難料,柳暗花明又一村,救援南陽的楊豐、張遼諸將雖然沒有能夠退敵告捷,但原來以為要無功而返的南征軍卻成功攻下了漢中門戶陽平關,隨後勢如破竹,連戰連勝,一舉拿下了漢中之地。
原來當日就在閻興還不甘心無功回師,召集成公英、馬岱諸將準備再發動夜襲之時,恰巧碰上張陵的忌辰,陽平關守將張衛、楊昂等人見南征軍寸步難進,心生驕怠,白日裏在關內忙於祭祀等事,夜間難免鬆懈了關防,因而竟被成公英帶領輕兵一擊得手,襲破了陽平關,蜂擁而入的南征軍將士勢不可擋,當夜裏全殲了關內的漢中守卒,俘虜了來不及逃脫的張衛、楊昂等人。
陽平關既失,漢中危如累卵,南鄭城中的張魯也坐不住了,慌忙找來功曹閻圃再次商議投降關西閻行之事,結果這一次閻圃卻變了言辭,堅決反對張魯在這個時候獻出南鄭投降,而是勸說張魯棄城南逃,循米倉道翻山越嶺逃入巴郡,投靠杜濩、樸胡等板楯蠻渠帥。
張魯對於閻圃前後態度的轉變詫異不已,當即詢問:
“君之前極力勸說我歸降關中,為何今日又出言反對?”
閻圃解釋:“今陽平關己破,關中兵馬勢大難敵,師君迫而歸降,功必輕;不如南逃守巴中,與之相拒,使關中軍將知我漢中難治、蜀道難行,然後歸降,功必多!”