卻說曹操興師西征,分兵三隊:前部先鋒夏侯淵、張郃;操自領諸將居中;后部曹仁、夏侯惇,押運糧草。早有細作報入漢中來,張魯與弟張衛商議退敵之策。衛曰:“漢中最險無如陽安關。可于關之左右,依山傍林,下十馀個寨柵,迎敵曹兵。兄在漢寧,多撥糧草應付。”張魯依言,遣大將楊昂、楊任,與其弟即日起程。軍馬到陽安關,下寨已定。夏侯淵、張郃前軍隨到,聞陽安關已有準備,離關一十五里下寨。
是夜,軍士疲困,各自歇息。忽寨后一把火起,楊昂、楊任兩路兵殺來劫寨。夏侯淵、張郃急上得馬,四下里大兵擁入,曹兵大敗,退見曹操。操怒曰:“汝二人行軍多年,豈不知兵若遠行疲困,可防劫寨。如何不做準備?”欲斬二人,以明軍法。眾官告免。
操次日自引兵為前隊,見山勢險惡,林木叢雜,不知路徑,恐有伏兵,即引軍回寨。謂許褚、徐晃二將曰:“吾若知此處如此險惡,必不起兵來。”許褚曰:“兵已至此,主公不可憚勞。”次日,操上馬只帶許褚、徐晃二人,來看張衛寨柵。三匹馬轉過山坡,早望見張衛寨柵。
操揚鞭遙指,謂二將曰:“如此堅固,急切難下。”言未已,背后一聲喊起,箭如雨下,楊昂、楊任分兩路殺來。操大驚。許褚大呼曰:“吾擋敵賊,徐公明善保主公。”說罷提刀縱馬向前,力敵二將。楊昂、楊任不能擋許褚之勇,回馬退去,其馀不敢向前。徐晃保著曹操奔過山坡,前面又一軍到,看時,卻是夏侯淵、張郃二將聽得喊聲,故引軍殺來接應。于是殺退楊昂、楊任,救得曹操回寨。操重賞四將。
自此兩邊相拒五十馀日,只不交戰。曹操傳令退軍。賈詡曰:“賊勢未見強弱,主公何故自退耶?”操曰:“吾料賊兵每日提備,急難取勝。吾以退軍為名,使賊懈而無備,然后分輕騎抄襲其后,必勝賊矣。”賈詡曰:“丞相神機,不可測也。”于是令夏侯淵、張郃分兵兩路,各引輕騎三千,取小路抄陽安關后。
曹操一面引大軍拔寨盡起。楊昂聽得曹兵退,請楊任商議,欲乘勢擊之。楊任曰:“操詭計極多,未知真實,不可追趕。”楊昂曰:“公不往,吾當自去。”楊任苦諫不從。楊昂盡提五寨軍馬前進,只留些少軍士守寨。是日,大霧迷漫,對面不相見。楊昂軍至半路,不能行,且權扎住。
卻說夏侯淵一軍抄過山后,見重霧垂空,又聞人語馬嘶,恐有伏兵,急催人馬行動,大霧中誤走到楊昂寨前。守寨軍士聽得馬蹄響,只道是楊昂兵回,開門納之。曹軍一擁而入,見是空寨,便就寨中放起火來。五寨軍士,盡皆棄寨而走。
比及霧散,楊任領兵來救,與夏侯淵戰不數合,背后張郃兵到。楊任殺條大路,奔回南鄭。楊昂待要回時,已被夏侯淵、張郃兩個占了寨柵。背后曹操大隊軍馬趕來,兩下夾攻,四邊無路。楊昂欲突陣而出,正撞著張郃,兩個交手,被張郃殺死。
敗兵回投陽安關,來見張衛。原來衛知二將敗走,諸營已失,半夜棄關奔回去了。曹操遂得陽安關并諸寨。張衛、楊任回見張魯。衛言二將失了隘口,因此守關不住。張魯大怒,欲斬楊任。任曰:“某曾諫楊昂休追操兵,他不肯聽信,故有此敗。任再乞一軍,前去挑戰,必斬曹操。如不勝,甘當軍令。”張魯取了軍令狀。楊任上馬,引二萬軍離南鄭下寨。
卻說曹操提軍將進,先令復侯淵領五千軍,往南鄭路上哨探,正迎著楊任軍馬。兩軍擺開,任遣部將昌奇出馬,與淵交鋒,戰不三合,被淵一刀斬于馬下。楊任自挺槍出馬,與淵戰三十余合,不分勝負。淵佯敗而走,任從后追來,被淵用拖刀計斬于馬下。
軍士大敗而回。曹操知夏侯淵斬了楊任,即時進兵,直抵南鄭下寨。張魯慌聚文武商議。閻圃曰:“某保一人,可敵曹操手下諸將。”魯問是誰。圃曰:“南安龐德,前隨馬超投主公;后馬超往西川,龐德臥病不曾行。見今蒙主公恩養,何不令此人去?”
張魯大喜,即召龐德至,厚加賞勞,點一萬軍馬,令龐德出。離城十余里,與曹兵相對。龐德出馬搦戰。曹操在渭橋時深知龐德之勇,乃囑諸將曰:“龐德乃西涼勇將,原屬馬超;今雖依張魯,未稱其心。吾欲得此人,汝等須皆與緩斗,使其力乏,然后擒之。”張郃先出,戰了數合便退。夏侯淵也戰數合退了。
徐晃又戰三五合,也退了。臨后許褚戰五十余合亦退。龐德力戰四將,并無懼怯。各將皆于操前夸龐德好武藝。曹操心中大喜,與眾將商議:“如何得此人投降?”賈詡曰:“某知張魯手下有一謀士楊松,其人極貪賄賂。今可暗以金帛送之,使譖龐德于張魯,便可圖矣。”操曰:“何由得人入南鄭?”詡曰:“來日交鋒,詐敗佯輸,棄寨而走,使龐德據我寨。我卻于夤夜引兵劫寨,龐德必退入城。卻選一能言軍士,扮作彼軍,雜在陣中,便得入城。”
操聽其計,選一精細軍校,重加賞賜,付與金掩心甲一副,令披在貼肉,外穿漢中軍士號衣,先于半路上等候。次日,先撥夏侯淵、張郃兩支軍遠去埋伏;卻教徐晃挑戰,不數合敗走。龐德招軍掩殺,曹兵盡退。龐德卻奪了曹操寨柵,見寨中糧草極多,大喜,即時申報張魯,一面在寨中設宴慶賀。當夜二更之后,忽然三路火起:正中是徐晃、許褚,左張郃,右夏侯淵,三路軍馬,齊來劫寨。
龐德不及提備,只得上馬沖殺出來,望城而走。背后三路兵追來。龐德急喚開城門,領兵一擁而入。
此時細作已雜到城中,徑投楊松府下謁見,具說:“魏公曹丞相久聞盛德,特使某送金甲為信。更有密書呈上。”松大喜。看了密書中言語,謂細作曰:“上復魏公,但請放心。某自有良策奉報。”打發來人先回,便連夜入見張魯,說龐德受了曹操賄賂,賣此一陣。張魯大怒,喚龐德責罵,欲斬之。閻圃苦諫。
張魯曰:“你來日出戰,不勝必斬!”龐德抱恨而退。次日,曹兵攻城,龐德引兵沖出。操令許褚交戰。褚詐敗,龐德趕來。操自乘馬于山坡上喚曰:“龐令明何不早降?”龐德尋思:“拿住曹操,抵一千員上將。”遂飛馬上坡。一聲喊起,天崩地塌,連人和馬跌入陷坑內去。四壁鉤索一齊上前,活捉了龐德,押上坡來。曹操下馬,叱退軍士,親釋其縛,問龐德肯降否。龐德尋思張魯不仁,情愿拜降。曹操親扶上馬,共回大寨,故意教城上望見。人報張魯:“德與操并馬而行。魯益信楊松之言為實。”
次日,曹操三面豎立云梯,飛炮攻打。張魯見其勢已極,與弟張衛商議。衛曰:“放火盡燒倉廩府庫,出奔南山,去守巴中可也。”楊松曰:“不如開門投降。”張魯猶豫不定。衛曰:“只是燒了便行。”張魯曰:“我向本欲歸命國家,而意未得達。今不得已而出奔,倉廩府庫,國家之有,不可廢也。”
遂盡封鎖。是夜二更,張魯引全家老小,開南門殺出。曹操教休追趕,提兵入南鄭。見魯封閉庫藏,心甚憐之。遂差人往巴中,勸使投降。張魯欲降,張衛不肯。楊松以密書報操,便教進兵,松為內應。操得書,親自引兵往巴中。張魯使弟衛領兵出敵,與許褚交鋒,被褚斬于馬下。敗軍回報張魯,魯欲堅守。楊松曰:“今若不出,坐而待斃矣。某守城,主公當親與決一死戰。”魯從之。閻圃諫魯休出,魯不聽,遂引軍出迎。未及交鋒,后軍已走。張魯急退,背后曹兵趕來。魯到城下,楊松閉門不開。張魯無路可走,操從后追至,大叫:“何不早降!”魯乃下馬投拜。操大喜,念其封倉庫之心,優禮相待,封魯為鎮南將軍。閻圃等皆封列侯。于是漢中皆平。曹操傳令各郡分設太守,置都尉,大賞士卒。惟有楊松賣主求榮,即命斬之于市曹示眾。