迫迁徙到汉中。刘备于是以张飞领巴西太守，命其进兵宕渠，在巴西之战中击退张郃。当时两军相持五十余日，张飞率精兵万余人从小道进攻张郃，山道狭窄，首尾不能相救，张郃大败，仅带十余人弃马爬山逃回汉中。建安二十二年（217年），刘备进攻汉中，分遣张飞、平西将军马超、将军吴兰等攻取武都。曹操遣都护将军曹洪救援。张飞扬言要截断曹洪后路，骑都尉曹休指出此是疑兵之计，劝说曹洪立即进攻吴兰，即大败吴兰，张飞、马超退回汉中，吴兰被阴平氐人强端杀害。建安二十四年（219年），刘备在定军山与夏侯渊对峙，讨虏将军黄忠推锋必进，