曹操夺取汉中之后,留下夏侯渊,张郃、徐晃等人守汉川,相机平定巴蜀,自己率大军取道长安,急急忙忙地回去了。
张郃按照曹操的意图,约在建安二十年(215)十二月间,率领部分军队进入四川,“下巴西,欲徙其民于汉中”,一直打到宕渠、蒙头、**石。可见,张郃的部队已经到达益州腹地。
根据历史的记载看,曹操当时留下夏侯渊、张郃屯守汉中,并未授予进攻和御敌之策;北还之前,令“张郃督军徇三巴”的决策,从军事上来讲,因为这是孤军深入处境堪忧。
张飞时领巴西太守。张郃到达宕渠时,刘备尚在江州(今重庆),遥令张飞率兵抵抗。两军相拒五十余日,不分胜负。但相对而言,张飞的军队有许多优势。第一,张飞的军队入蜀托孤扩编以来一直是打胜仗的,兵为胜兵,士气高涨,锐气甚盛;第二,张飞军队熟悉巴西地理环境,而且是以逸待劳;第三,张郃兵力不会超过五千,张飞的兵力大大超过张邰,兵力对比悬殊,势力对比上,张飞具有更多优势。
所以,战局急剧变化,张郃的部队由攻势转为守势,不得不据守于个别据点,失去了主动发动进攻的能力。
最后,张飞设计将张郃引出据点,战于宕渠之瓦口。史载,“飞率精卒万余人,从他道邀郃军交战,山道连狭,前后不得相救,飞遂破郃。郃弃马缘山,独与麾下十余人从间道退,引军还南郑,巴土获安”。
“莽张飞”也能够粗中有细,击败曹操名将,充分展示出他的军事才能。