公元218年(建安二十二年),曹操击败汉中张鲁,张鲁逃入巴西,刘备听说后派黄权前往迎接,但张鲁随后向曹操投降。张鲁投降后,曹操因后方叛乱而回师,一方面留夏侯渊镇守汉中,另一方面命令张郃进犯巴西,扰乱巴...

公元218年(建安二十二年),曹操击败汉中张鲁,张鲁逃入巴西,刘备听说后派黄权前往迎接,但张鲁随后向曹操投降。张鲁投降后,曹操因后方叛乱而回师,一方面留夏侯渊镇守汉中,另一方面命令张郃进犯巴西,扰乱巴西郡民。张郃进兵至宕渠县,寇犯百姓。刘备一方面自己亲自驻扎江州,另一方面令张飞驻扎阆中,进攻张郃。

张飞率军与张郃相据五十余日。张飞率领精兵万余人主动进攻宕渠的张郃,张郃率兵迎击,张飞将张郃引到瓦口关,山道狭窄,张郃军前后军不得救应,被张飞打得大败,张郃为了逃命,只得放弃战马攀山而逃,率领部下十余人逃到南郑。巴西郡自此获安。

公元219年(建安二十三年),张飞与马超率领吴兰、雷铜临沮水,想要借此攻打武都、阴平两郡,但被曹洪、曹真、徐晃等人联手击破,吴兰、雷铜战死。同年,黄忠于定军山斩杀夏侯渊,三月,曹操亲提大军来争汉中,刘备据守,赵云又在汉水截取曹军粮草,五月,曹操撤出汉中,汉中为刘备所据有。秋七月,刘备称汉中王,拜张飞为右将军,假节。十二月,关羽被孙权所杀。