中。刘备急忙与孙权议和，转让长沙、桂阳，孙权返还零陵。刘备回到江州，遣护军、偏将军黄权率兵救援张鲁，而张鲁已经投降曹操。曹操北还，留征西将军夏侯渊、平狄将军张郃守汉中，张郃则不断从巴西掳掠百姓，强迫迁徙到汉中。刘备于是以张飞领巴西太守，命其进兵宕渠，在巴西之战中击退张郃。当时两军相持五十余日，张飞率精兵万余人从小道进攻张郃，山道狭窄，首尾不能相救，张郃大败，仅带十余人弃马爬山逃回汉中。建安二十二年（217年），刘备进攻汉中，分遣张飞、平西将军马超、将军吴兰等攻取武都。曹操遣都护将军曹洪救援。张飞扬言要截