公元194年,北海太守孔融被黃巾軍餘黨管亥圍困,派太史慈前來請求援助,張飛隨劉備帶兵前往救助。徐州救援陶謙,陶謙表劉備為豫州刺史,陶謙死後,劉備受邀以徐州為根據。時隔兩年,袁術攻打劉備,爭奪徐州。劉備派張飛守下邳,自己則將兵在盱眙、淮陰抵抗袁術,雙方僵持了月餘,互有勝負。
張飛第一次遇上勁敵是與呂布交戰的時候,第一次交戰不敵呂布,於是劉備的家小被呂布俘虜,形勢所迫,劉備、張飛只好暫時依附呂布,駐軍小沛。沒想劉備的軍隊在小沛發展得極為迅速,呂布不安,又率來攻,劉備只得攜張飛等投奔曹操,並與曹操聯合。第二次張飛與呂布相遇,是在公元197年,張飛從曹操進攻呂布,呂布敗亡後,張飛被任命為中郎將。一直到赤壁之前,張飛都隨著劉備輾轉投奔到袁紹、劉表的手下。
後來據有荊州的劉表病死,荊州成為一塊香餑餑,眾人爭搶。公元208年,曹操揮師南下,劉備投奔荊州劉表病死。劉備得知後南逃,曹操於當陽長阪追到劉備,慌亂逃走間將趙雲給落下了,無奈只得派張飛斷後,張飛召集二十餘騎立於當陽橋上,曹軍大眾至,張飛據水斷橋,張飛睜圓環眼,隱隱見後軍青羅傘蓋、旄鉞旌旗來到,料得是曹操心疑,親自來看。飛乃厲聲大喝曰:「我乃燕人張翼德也!誰敢與我決一死戰?」聲如巨雷。曹軍聞之,盡皆股慄。曹操急令去其傘蓋,回顧左右曰:「我向曾聞雲長言:翼德於百萬軍中,取上將之首,如探囊取物。今日相逢,不可輕敵。」
言未已,張飛睜目又喝曰:「燕人張翼德在此!誰敢來決死戰?」曹操見張飛如此氣概,頗有退心。飛望見曹操後軍陣腳移動,乃挺矛又喝曰:「戰又不戰,退又不退,卻是何故!」喊聲未絕,曹操身邊夏侯傑驚得肝膽碎裂,倒撞於馬下。操便回馬而走。於是諸軍眾將一齊望西奔走。
218年,曹操擊敗張魯後,曹營著名將領張郃率軍進入益州東北部,此地雖屬益州但向來為張魯的領地。劉備遂任張飛為巴西太守,出兵爭奪,兩軍對持五十多日。後來,張飛率精兵萬多人,邀張郃軍交戰,因山道狹窄,前後不能相救,張郃大敗,棄馬與十餘人爬山退還南鄭。此戰不僅拓增劉備方領土,更使保住蜀地門戶,使益州轉危為安。張飛隨即參與攻打漢中的戰事。219年,劉備據有漢中,稱漢中王,拜張飛為右將軍,假節鉞。不久,關羽被孫權所殺。痛失關羽這一得力干將,一下子劉備的力量減弱了許多,而隨後張飛的死無疑又是雪上加霜。
221年,劉備稱帝,張飛遷為車騎將軍,領司隸校尉,進封西鄉侯。同年,劉備稱為關羽報仇,東征東吳,張飛在閬中準備出兵會師江州。臨近出發時,被其麾下將領張達、范疆謀殺,更帶同其首級奔赴孫權,劉備聞得張飛都督有表,大叫:「噫!飛死矣。」後主劉禪時追諡為桓侯。