曹操戰勝呂布後,即帶劉備回到許都。劉備不甘心寄人籬下,就用計迷惑曹操。後來劉備借口截擊袁術,逃離許都,打敗袁術,殺掉曹軍將領車胄,奪回了徐州,又策動袁紹起兵伐曹。曹操大怒,一面親率20萬大軍迎戰袁紹,一面派劉岱、王忠二將打著丞相旗號討伐劉備。
正值初冬,大雪紛飛。兩軍冒雪佈陣對峙。關雲長飛馬提刀同王忠殺掉起來,不幾個回合就將王忠活捉於馬上,返回本軍。張飛見二哥立了頭功,心中焦灼,立刻對劉備說:「待我去活捉劉岱來。」劉備說:「劉岱也是一鎮諸侯,不可小看了他。」張飛冷笑道:「此輩何足掛齒?我一定把他活生生捉來見你。」劉備故意說道:「只恐你魯莽性子壞了他性命。」張飛急了,叫道:「如殺掉他,我償性命!」劉備就交三千兵馬給張飛。張飛即率軍前進。
劉岱見王忠被活捉後,緊閉寨門,就是不出來迎戰。張飛就每天在寨門前惡語叫罵,劉岱知道張飛厲害,愈加不敢出戰。張飛叫罵了幾天,見劉岱不出,寨門攻打不下,又在劉備面前誇下了海口,心中焦急,但焦躁之餘忽生靈感。他傳令全軍今夜二更去劫劉軍營寨,白天,卻在自家營帳裡飲酒作樂,喝得酩酊大醉,故意尋找一個帳前軍士的錯處,喝令左右將他痛打一頓,並將他捆縛在營裡,罵道:「哼,待我今晚出兵凱旋時,再拿你的腦袋拜祭軍旗!」私下裡張飛卻悄悄指使左右故意放他逃走。那軍士逃出寨門,越想越氣,便徑往劉岱營中密告張飛企圖夜劫劉寨的情報。
劉岱見那軍士給打得皮開肉綻,便相信了他的情報,高興地說:「好,今日叫張飛嘗嘗我伏兵的味道。」傳令空出營寨,士兵全部埋伏在寨外,單等張飛闖入,來個「甕中捉鱉」。
這天晚上,張飛果然兵分三路,長驅而入,但他的中路卻只有30人,任務是闖入劉寨搶先放火,卻教左右兩路人馬抄在劉寨背後,單等火起為號,然後夾擊劉岱的伏兵。到了三更時分,張飛親自率一支精兵,先斷劉岱後路。中路30人,果然搶入劉寨放火。寨外劉岱伏兵大聲喊叫,以為張飛中伏,皆向寨內殺入,張飛兩路軍馬一齊出動,圍殺劉岱伏兵。劉軍頓時亂作一團,也不知張飛究竟有多少人馬,四面潰逃。劉岱知大勢已去,率一支餘部奪路欲逃,正撞見張飛像天神一樣攔住退路,急忙迴避,卻被張飛飛馬趕上,只一回合,便把劉岱活捉過來。餘眾紛紛投降。
張飛派軍使躍馬馳入徐州報捷,劉備大喜,對關雲長說:「三弟向來粗魯、莽撞,今天也會用智謀作戰了,可喜可賀,我再也不必為他擔憂了。」