第二天,曹操先派夏侯渊、张郃两支军队,到远处埋伏;然后让徐晃去挑战,没打几个回合就假装战败逃走。庞德指挥军队掩杀过来,曹兵全部后退。庞德于是夺取了曹操的营寨。看到寨中粮草极多,庞德非常高兴,立刻向张鲁报告;一面在寨中设宴庆贺。
当夜二更过后,忽然三个方向燃起大火:正中间是徐晃、许褚,左边是张郃,右边是夏侯渊。三路军马,一齐来劫营。庞德来不及防备,只好上马冲杀出来,朝着城的方向逃去。背后三路追兵赶来。庞德急忙叫人打开城门,带领军队一拥而入。
这时,曹操派来的细作已经混进城中,直接到杨松的府上拜见,详细地说:“魏公曹丞相久闻您的盛德,特地派我送金甲作为信物。还有密信呈上。”杨松非常高兴,看了密信中的内容,对细作说:“回复魏公,请他放心。我自有良策回报。”打发来人先回去,便连夜进宫去见张鲁,说庞德接受了曹操的贿赂,故意输掉这一仗。
张鲁大怒,把庞德叫来责骂,想要斩杀他。阎圃苦苦劝谏。张鲁说:“你明天出战,如果不能取胜就一定斩杀你!”庞德满怀怨恨地退下。
第二天,曹兵攻城,庞德领兵冲了出来。曹操命令许褚出战。许褚假装战败,庞德追了过来。曹操亲自骑着马在山坡上喊道:“庞令明(庞德,字令明)为什么不早点投降?”
庞德心想:“抓住曹操,抵得上一千员上将!”于是飞马上坡。忽然一声喊叫响起,天崩地塌一般,连人带马,跌入陷坑内;四周的钩索一齐伸上前,活捉了庞德,押到山坡上。
曹操下马,叱退军士,亲自为庞德解开绑绳,问庞德是否愿意投降。庞德想到张鲁不仁不义,便情愿投降。曹操亲自扶他上马,一起回到大寨,故意让城上的人看到。有人报告张鲁,说庞德和曹操并马而行。张鲁更加相信杨松的话是真的了。
第二天,曹操三面竖起云梯,用飞炮攻打。张鲁见形势已经到了极点,和弟弟张卫商议。张卫说:“放火把仓库和府库都烧光,逃奔南山,去把守巴中就行了。”杨松说:“不如开门投降。”张鲁犹豫不决。张卫说:“还是烧了就走。”
张鲁说:“我本来就想归顺朝廷,只是心愿没有达成;如今不得已才出逃,仓库和府库,是国家所有的,不能毁掉。”于是把仓库都封锁起来。
当夜二更,张鲁带着全家老小,打开南门杀出。曹操下令不要追赶;带兵进入南郑,看到张鲁封闭了库藏,心里很是怜惜他。于是派人前往巴中,劝说张鲁投降。
张鲁想要投降,张卫不肯。杨松写密信报告曹操,让曹操进兵,他愿意作为内应。曹操收到信后,亲自带兵前往巴中。张鲁派弟弟张卫领兵迎敌,与许褚交锋;被许褚斩于马下。败军回去报告张鲁,张鲁想要坚守。