后来,由于形势所迫,刘备、张飞只好暂时依附吕布,驻军小沛。吕布还刘备妻小。刘备驻小沛,发展较快,不久便聚众万余人。公元198年(建安三年),吕布军队用来购买军马的黄金被刘备的部下抢走。吕布于是派遣高顺等人攻打刘备,刘备不能抵挡。夏侯惇奉命前来救援刘备,却也被高顺击败。不久,高顺等人彻底击溃刘备军。[5][6]刘备失去了立足之地,只得携张飞等人投奔曹操,并与曹操联合。
刘备、张飞跟从曹操进攻吕布。吕布败亡后,张飞被任命为中郎将。公元200年(建安五年),刘备衣带诏事情泄漏,率领关羽、张飞逃走,杀徐州刺史车胄,让关羽据守下邳,自己与张飞屯小沛。曹操派刘岱、王忠前来攻打,被张飞、关羽击退。后曹操亲自出马,刘备战败,关羽被擒,刘备与张飞逃奔袁绍。
公元201年(建安六年),张飞与刘备在汝南联结刘辟、龚都等人扰乱曹操后方,许都以南纷纷响应,曹操派蔡阳前来攻打,但被刘备所杀,后刘备被曹仁击败,张飞随刘备投奔荆州刘表,驻扎新野。
据水断桥
刘备在得到诸葛亮后,越来越器重诸葛亮。关羽、张飞对此事感到不悦,刘备解释道:“我得到了孔明,就像鱼得到了水,希望诸君不要再说了。”关羽、张飞于是停止了抱怨。
公元208年(建安十三年),曹操挥师南下,刘表病死,刘琮投降。刘备得知后南逃,数十万百姓相随,曹操率领五千精骑急追刘备,一日一夜,行三百余里,追到当阳境内的长坂。[50]刘备军被击溃,只率领诸葛亮、张飞、赵云等数十骑逃走,曹操大获人马辎重。慌乱间又不见了赵云,刘备乃派张飞去断后,张飞召集二十余骑立于当阳桥上,曹军大众至,张飞据水断桥,曹操军都害怕张飞的勇猛,虽然看见张飞人少,但也没有人敢上,刘备军因此获安,而后赵云又救出了刘备的妻子甘夫人和儿子刘禅,与刘备汇合,此时关羽从水道前来接援,张飞与刘备等前往江夏。
赤壁之战后,刘备将张飞借给周瑜攻打南郡,围攻一年后,南郡守将曹仁溃逃。刘备占领荆州后任命张飞为宜都太守、征虏将军,封新亭侯,后转到南郡。
义释严颜
建安十七年,刘备受刘璋之邀,入西川帮助刘璋抵御张鲁,张飞与关羽、赵云、诸葛亮等共守荆州。东吴得知刘备入川,派遣大船迎接孙夫人回吴,孙夫人趁机将刘禅一同带走,张飞得知后,与赵云一起截住孙夫人,夺回刘禅,放孙夫人归吴。
公元213年(建安十八年),刘备与刘璋决裂,军师庞统中流矢身亡。张飞、诸葛亮、赵云等领荆州兵入川增援。大军到达江州,江州守将严颜据守不降,张飞将其攻破,占领江州,并生擒严颜,张飞对严颜大喝到:“大军到来,你怎么不投降还敢与我大战!”严颜回到:“你们无理侵夺我们疆土,我们这里只有断头将军,没有投降将军!”张飞大怒,令牵下去斩首,严颜