牵制关羽，自己则在陆口调度诸军。刘备率五万人到公安，遣关羽将三万兵至益阳。两军尚未开战，魏公曹操已经攻占汉中，张鲁南逃巴中。刘备急忙与孙权议和，转让长沙、桂阳，孙权返还零陵。刘备回到江州，遣护军、偏将军黄权率兵救援张鲁，而张鲁已经投降曹操。曹操北还，留征西将军夏侯渊、平狄将军张郃守汉中，张郃则不断从巴西掳掠百姓，强迫迁徙到汉中。刘备于是以张飞领巴西太守，命其进兵宕渠，在巴西之战中击退张郃。当时两军相持五十余日，张飞率精兵万余人从小道进攻张郃，山道狭窄，首尾不能相救，张郃大败，仅带十余人弃马爬山逃回汉中。