却说徐晃带领军队渡过汉中,王平劝谏他但他不听,于是就渡过汉水扎下营寨。黄忠、赵云向刘备禀报说:“我们各自带领本部兵马去迎战曹军。”刘备答应了。二人带领军队在路上,黄忠对赵云说:“现在徐晃依仗勇猛而来,暂且不要与敌人交战;等到傍晚他们的锐气被挫败动摇时,你我分兵两路去攻击他们就可以了。”赵云说:“是这样。”各自带领一支军队占据住营寨栅栏。徐晃带领军队从辰时挑战,一直到申时,蜀兵都不动。徐晃让所有的弓弩手向前,朝着蜀营射箭。忽然有人向黄忠、赵云禀报说:“徐晃让弓弩手胡乱射箭,他们的军队必定会后退,可以趁着这个时候去攻击他们。”又有一人禀报说:“曹军的后队果然开始后退移动。”蜀营鼓声大振,黄忠带领军队从左边出击,赵云带领军队从右边出击。两下夹攻,只这一阵,徐晃遭遇大败,士兵们被逼入汉水,死的人不计其数。徐晃拼死战斗才逃脱,回到营中大力责备王平说:“你看到我军形势将要危急,为什么不救援?”王平说:“我要是去救援,这个营寨也不能保住。我曾经劝谏您不要去,您不听,才导致了这次失败。”徐晃大怒,想要杀王平。王平在当夜带领本部军队,就在营中放起火来,曹军大乱,徐晃丢弃营寨而逃走。王平渡过汉水来投奔赵云。赵云引见给刘备。王平详细地献上汉水一带的地理形势。刘备非常高兴地说:“我仰仗王子均陈述良策,我得到汉中毫无疑问了!”于是任命王平为偏将,兼任向导使。
却说徐晃逃回见到曹操,说王平反叛了,去投奔刘备。曹操大怒,亲自统领大军来夺取汉水的寨栅。赵云担心孤军难以立足,就退回汉水的西边。两军隔着水相互对峙。刘备、诸葛亮前来观察形势,诸葛亮看到汉水上游有一处土山,能够埋伏一千多人。诸葛亮回到营中,叫来赵云吩咐:“你可以带领五百人,都带着鼓和号角,埋伏在那土山之下;要么在半夜,要么在黄昏,只要听到我营中炮响,你就一起擂鼓,但是不要出战。炮响一次,就擂鼓一次,不要出战。”赵云接受了计策,自己去埋伏。诸葛亮却在高山上暗中观察。第二天,曹军前来挑战,营中全部埋伏好,没有一个人出来,弓弩也都不发射。曹军自己回去了。到了当天夜里更晚的时候,诸葛亮看到曹营灯火刚刚熄灭,军士们都休息了,于是放响号炮。赵云听到了,命令鼓和号角一起响起。曹军惊慌失措,只怀疑是要劫营,等到出营一看,一个人都没有。刚要回营休息,号炮又响了,鼓和号角又响了,呐喊声震动大地,山谷也发出回声。曹军整夜都不得安宁。连续三个晚上,都是这样惊疑不定。曹操心里害怕,拔寨自己后退三十里,在空旷的地方扎营。诸葛亮叹息说:“曹操虽然懂得兵法,却不懂得诡计。”于是请求刘备亲自渡过汉水,在背后扎营。刘备询问计策,诸葛亮说:“可以这样这样。”
曹操看到刘备背靠汉水扎营,心中稍有疑虑,派人送来战书。孔明批示明日决战。第二天,两军在中路五界山前会面,排开阵势。曹操骑马站在军门旗下,两行排列着龙凤旌旗,擂鼓三通,呼唤刘备答话。刘备带领刘封、孟达以及川中众将领出来。曹操扬鞭大骂道:“刘备你这个忘恩负义、反叛朝廷的贼人!”刘备说:“我是大汉宗亲,奉诏讨伐贼人。你超越本分使用天子的车驾礼仪,自立为王,不是造反又是什么?”曹操发怒,命令徐晃出马,去捉拿刘备。刘封出来迎战。交战的时候,刘备先走入阵中。刘封抵挡不住徐晃,拨马就跑。曹操下令:“有能捉住刘备的人,就可成为西川之主!”大军呐喊着,杀过阵来。蜀兵朝着汉水逃跑,全部舍弃营寨;马匹和兵器,丢满了道路。曹军争相去夺取。曹操急忙鸣金收军。众将在马上说:“我们正等着捉住刘备,主公为什么要收军?”曹操说:“我看到蜀兵背靠汉水安营,这是一个疑虑。大量丢弃马匹和兵器的,这是第二个疑虑。赶快退兵,不要去取那些衣物。”曹操下令说:“随意取一件东西的人立刻斩首!火速退兵!”曹军刚回头时,孔明的号旗举起;刘备的中军领兵杀出,黄忠从左边杀来,赵云从右边杀来。曹军大败而逃。孔明连夜追赶。曹操传令军队回南郑。只见五条路都起火了,原来是张飞、魏延在得到严颜代替他们防守阆中后,分兵杀过来,先夺取了南郑。曹操心惊,奔向阳平关逃走。刘备的大军追到南郑褒州。安抚好百姓后,刘备问孔明说:“曹操失败得这么快,是什么原因?”孔明说:“曹操一生为人多疑,虽然善于用兵,但多疑就会多失败。我用疑兵之计战胜了他。”刘备说:“现在曹操退守阳平关,他的形势已经孤立,先生有什么计策让他退兵?”孔明说:“我已经有计划了。”就派遣张飞、魏延分兵两路,去截断曹操的粮道;命令黄忠、赵云分兵两路,去放火烧山。“粮草完全断绝,他怎么能长久停留呢?”刘备说:“好极了!”众将各自带领向导官军去了。