效力董卓
呂布因其勇武在并州任職,并州刺史丁原擔任騎都尉,在河內駐紮,任命呂布為主簿,對他很親近。漢靈帝死後,丁原接到何進的徵召,率領軍隊到洛陽,密謀誅殺宦官,被任命為執金吾。適逢何進為宦官所殺,董卓入京,誘呂布殺丁原,進而吞併丁原的軍隊,並任命呂布為騎都尉,同他發誓結為父子,對他十分欣賞信任。呂布善長騎射,膂力過人,被稱為「飛將」, 不久又被董卓提拔為中郎將,封都亭侯。
關東軍起兵討董時,呂布亦曾參戰,卻因與將領胡軫不和而被孫堅所敗,最後董卓挾漢獻帝劉協遷都長安。董卓自知自己凶暴,為人所惡,所以時常要呂布作自己的侍衛及守中閣;不過,董卓性格又十分猜疑,曾因小許失意而向呂布擲出手戟,又呂布與董卓的婢女有染,恐怕事情被董卓發覺,所以心中十分不安。之前,由於王允因為呂布是并州的壯士,對他以厚禮相待。自從呂布懷恨董卓後,他去見了王允,述說了董卓差點殺他的經過。王允此時正和士孫瑞、楊瓚等密謀除掉董卓,因此便讓呂布作內應。呂布有些猶豫,說:「奈何是父子,怎麼好下手呢?」王允說:「將軍姓呂,本來就非親生骨肉,如今你保全自己的性命還來不及,還說什麼父子!」於是呂布答應了王允,成功刺殺董卓,任職奮武將軍,假節,儀比三司,進封溫侯,與王允同掌朝政。
投靠各方
董卓死後兩個月,其舊部屬李傕和郭汜等本想解散部隊,歸隱田野,途中遇賈詡獻計,召集舊部,攻入京城,呂布守城八日,因城內叟兵叛變,呂布戰敗,於是率兵百餘騎兵,帶著董卓的首級殺出武關。在此期間,呂布曾在城北與郭汜單挑決勝負,呂布以矛刺中郭汜,郭汜被左右軍隊所救,雙方遂各自罷兵。
呂布先投靠袁術,但因袁術不滿他自恃有功而十分驕恣、恣兵抄掠,所以被拒絕,於是呂布改投袁紹。在袁紹處,與其聯手在常山會戰張燕,黑山軍有一萬多精兵、幾千騎兵。呂布經常騎著能夠騰躍城牆、飛跨壕溝、名叫赤兔的良馬,與手下猛將成廉、魏越等幾十個人騎馬衝擊張燕的軍陣,有時一天去三四次,每次都砍了黑山軍的首級回來。連續作戰十多天,終於打敗了張燕的軍隊。呂布仗恃自己的戰功,再次向袁紹要求增加軍隊,袁紹不答應,而呂布手下的將士也時時搶劫、掠奪,袁紹開始疑恨他。呂布感覺不安,就請求回洛陽。袁紹同意他的要求,以天子名義任命呂布領司隸校尉,派甲士送呂布而暗中要除掉他。呂布懷疑袁紹打自己的主意,就派人在營帳中彈著箏,自己悄悄逃了出去。半夜那些甲士出動,亂刀砍呂布的床,認為他已經死了,第二天袁紹卻得到呂布還活著的消息,於是下令關閉城門, 呂布得以逃到河內,與張楊聯合。袁紹擔心呂布對自己不利,再次派兵追殺呂布,那些士兵都害怕他,追上了也沒有一人敢逼近。 途中經過陳留,太守張邈派人迎接呂布,對他大加款待,臨分手時兩人握住對方手臂發誓結好。
爭奪兗州
興平元年(194年),曹操向東攻打陶謙,派將領武陽人陳宮駐守東郡。陳宮趁機勸說張邈:「現在天下分裂,英雄豪傑同時嵋起,您擁有十萬人的隊伍,處在可以四面作戰的地方,按劍雄視天下,是可以做人中豪傑,反而被人控制,不是太卑下了嗎?現在本州的軍隊東征,其地空虛,呂布是猛士,善於作戰,英勇無敵,將他接來一同佔據兗州,觀望天下形勢,等候時事的變化好轉,這可以縱橫一世。」
張邈聽從陳宮的意見,就同弟弟張超和陳宮等人迎接呂布,請他當兗州牧,佔據濮陽,兗州所屬郡縣一同響應。曹操知道後率領軍隊攻打呂布,兩軍對陣,呂布出戰,先派騎兵衝散青州兵,曹軍陣勢大亂,曹操策馬冒火突圍,燒傷了左掌。 此後雙方多次交戰,相持一百多天。這時發生天旱,又有蝗蟲為害,糧食不夠,出現了人吃人。呂布將部隊移到山陽駐紮。
興平二年(195年),曹操將兗州各城全部收復,在鉅野擊敗呂布,呂布東逃投奔劉備。張邈到袁術那裏求救,留下張超帶著家眷部屬駐守雍丘。曹操包圍張超,圍了幾個月,殺掉張超和張氏三族。張邈未到壽春,就被他的士卒殺害。 呂布見到劉備後,對其非常尊敬,對劉備說:「我和閣下都是北疆邊境的人。我當時見關東軍起兵,想要誅殺董卓。但我殺掉董卓東出,關東諸將卻沒有一個接納我,都想要殺掉我。」並請劉備坐在帳中的床上,令妻妾向劉備行禮,酌酒飲食,稱劉備為賢弟。劉備見呂布語言無常,表面以為然之,但心裡卻不開心。
雄踞徐州
興平二年(195年),袁術率軍攻打徐州,與劉備相持於盱眙、淮陰。相持一個月,雙方互有勝敗。 袁術寫信給呂布,許諾送上二十萬斛大米,誘使其襲擊下邳,於是呂布水陸東下,軍隊抵達下邳西四十里時,劉備的中郎將丹楊人許耽派司馬章誑前來迎接呂布,並向呂布透露了張飛和曹豹相爭,下邳城內大亂,丹陽兵都在西白門城內等待呂布的到來,於是呂布便大舉進軍,早晨到達城下。天亮後,丹陽兵打開城門,呂布坐在城門上,指揮軍隊大破張飛,俘虜劉備的妻妾兒女及其部曲的家眷。
此時,劉備為袁術所敗逃往海西,飢餓疲憊,向呂布請求投降。呂布又惱火袁術不再運糧來,就準備了車馬迎接劉備,讓劉備擔任豫州刺史,派他駐守小沛。呂布自稱為徐州牧。
同年七月,因李傕、郭汜的火拚,漢獻帝劉協從長安東歸,途徑河東,下詔書令呂布迎駕。由於呂布的軍隊沒有儲備足夠的糧食,無法勤王,於是呂布派遣使者上書謝罪。朝廷任命呂布為平東將軍,封平陶侯。
轅門射戟
建安元年(196年),袁術派大將紀靈帶領步騎共三萬多人馬征討劉備,劉備向呂布求援。呂布手下將領說:「將軍您一直想除掉劉備,如今可借袁術的手除掉他。」呂布說:「並非如此,袁術如果佔據了小沛,就會聯合北面泰山一帶的部隊,我們就會被袁術所包圍,我不能不去救劉備啊。」於是領步兵千人、騎兵二百,飛速趕往小沛。紀靈等人聽說呂布前來援救劉備,只好收兵,不敢輕舉妄動。呂布在離小沛西南一里的地方紮下營寨,派衛士去請紀靈等將領,紀靈等人也請呂布一起飲酒。呂布對紀靈等人說:「玄德,是我呂布的賢弟。如今他被諸位所圍,我特意趕來救他。我呂布生性不愛看別人互相爭鬥,只喜歡替別人解除紛爭。」呂布命門候在營門中豎起一支戟,說:「諸位看我射戟上的小支,如一發射中,諸君當立即停止進攻,離開這裡,如射不中,那你們就留下與劉備決一死戰。」他引弓向戟射出一箭,正好中了小支。諸將大為震驚,誇讚說:「將軍您真是有天神般的威力呀!」第二天,呂布又與諸將歡會宴飲,然後各自回兵。
郝萌之變
建安元年(196年)六月夜半時,呂布部將河內人郝萌在袁術的慫恿下發動叛亂,率兵部隊攻打呂布治所下邳,城池防守堅固無法攻入,呂布不知道造反的是誰,帶領家眷逃往高順營寨,高順問道:「將軍有所隱不?」呂布回答:「這是河內人的聲音。」高順便猜到造反的是郝萌,於是率部到下邳平叛,弓弩齊發射殺郝萌軍,天亮還營。(《冊府元龜》則記載呂布與高順一同前往平叛。 )郝萌的部將曹性反正,與郝萌對戰,郝萌刺傷曹性,曹性斬斷郝萌一臂,高順乘勢斬下郝萌的首級,用床擔著受傷的曹性前往見呂布。呂布問曹性此事起源,曹性回答:「郝萌受到袁術的鼓動而造反。」呂布又問:「同謀的都有誰?」曹性回答說陳宮同謀,當時陳宮坐在呂布旁白,臉發紅,旁人都察覺到了。呂布因為陳宮是大將,並不追究。曹性又說:「郝萌造反時曾問我可行嗎?我說呂大將軍神勇不可對抗,沒想到郝萌狂惑不止。呂布對曹性說:「你真是個健兒。」讓其好好養傷,等曹性傷癒後,讓他統領郝萌的餘部。
虎步江淮
袁術想聯合呂布,讓他為自己所用,於是向呂布提出讓他的兒子娶呂布之女為妻,呂布同意了。袁術派韓胤為使節,向呂布正式轉達他將更換年號、登基稱帝的事情,同時請求接呂布的女兒與自己的兒子去完婚。沛相陳珪擔心袁術、呂布成了親家,徐州、揚州聯為一體,將會危害國家,於是前往遊說呂布:「曹公奉迎天子,輔佐朝政,征討八方,威震四海,而將軍您應與他合作,以取得天下安寧。如果您與袁術成了親家,將會擔上不義之人的罪名,那樣形勢就對您不利了。」呂布心裡也怨恨當初袁術不接納自己,雖說女兒此時已經隨韓胤走了,他還是把她追了回來,拒絕了這門親事,並將使者韓胤戴上枷鎖、鐐銬,送往許都街市上斬首示眾。陳珪想派其子陳登到許都,說明呂布願意與曹操合作,呂布不同意。正巧曹操的使者這時來到,傳漢獻帝劉協的旨意,任命呂布為左將軍。呂布大喜,於是讓陳登啟程,還命他帶著書信,向漢獻帝劉協謝恩。
陳登拜謁曹操,述說了呂布有勇無謀、反覆無常的缺點,希望曹操早日除掉他。曹操說:「呂布是個具有狼子野心的人,實在不能讓他久留世上,你當然是最熟悉內情的。」當即把陳珪的年俸祿提到二千石,任命陳登為廣陵太守。
臨別時,曹操拉著陳登的手說:「東邊的事,便全托付給你了。」命令陳登私下分化呂布的隊伍,為自己做內應。開始時,呂布想通過陳登求得徐州刺史之職,陳登回來,呂布見自己的願望沒能實現,大怒,拔出戟來砍著桌子說:「你父親勸我與曹公合作,我才拒絕了袁術的婚約;而現在我一無所獲,你們父子反倒地位顯赫,加官晉爵,我被你們出賣了!你倒說說看,你在曹公面前替我說了些什麼?」陳登面不改色,從容地答道:「我見曹公時說:『對待將軍您,要像對待猛虎,應當讓他吃飽,如果不飽,他會吃人的。』曹公說:『並不像你說的那樣,對呂布更像是養鷹,餓時可以利用,而當他吃飽了,卻會自顧飛去。』我們就是這樣談論您的。」呂布的氣才平息下來。
袁術聽說呂布回絕了婚事還殺掉自己的使者,便派手下大將張勳、橋蕤等人同韓暹、楊奉合兵,率幾萬步兵騎兵,分七路進攻呂布。當時呂布只有三千兵力,四百匹馬,擔心抵擋不住,對陳珪說:「如今招來袁術的部隊,是由於你造成的,你看該怎麼辦?」陳珪說:「韓暹、楊奉與袁術,不過是倉促聚起來的部隊而已。原先就沒有確定計策,不可能相互維持。我兒子陳登算定他們好比排著隊的雞,其局面不可能一同棲息,很快就可使他們離散。」呂布採納陳珪的計策,寫信給韓暹、楊奉說:「二位將軍有救駕之功,而我親手殺掉董卓,一道建立功名,將會留名青史。現在袁術反叛,應當一同討伐他。你們為什麼與反賊來這兒攻打我呢?可趁著現在聯手打敗袁術,為國家除害,為天下建立功業,這個機會不可失去。」又答應打敗袁術軍隊之後,將軍中錢糧全部給他們。韓暹、楊奉大為高興,就一同在下邳攻打張勳等人,活捉了橋蕤,其餘袁軍人馬潰散逃走,許多人被殺死殺傷,掉在水中淹死,幾乎全軍覆沒。 呂布率軍追擊袁術至江淮,在岸北大笑之而還。
當時泰山臧霸等攻克莒城,答應給呂布財物錢幣用來結交呂布,但沒來得及送去,呂布就親自前往。高順勸他不要去,說:「將軍親自斬殺董卓,威震戎狄,聲名遠揚,遠近都害怕您,要什麼東西不能得到,反而親自去要財貨?萬一得不到,豈不有損威名?」呂布不聽,率兵抵達莒城, 臧霸畏懼呂布以武力劫掠凌虐,堅守莒城,結果呂布無法攻克,引軍還下邳,爾後臧霸與呂布和解。高順為人清白,儀表威嚴,很少說話,統率部眾整齊,每次作戰必定獲勝。呂布天生隨便作出決定或改變主張,做事情變化無常。高順常常規勸說:「將軍做事情,不肯慎重考慮,時常出現失誤,說話做事總是有差錯。失誤的事情難道可以一再發生嗎?」呂布瞭解高順的忠誠但終究不採納。劉備在小沛,招納舊部,重新糾集了萬人,呂布厭惡他,親自出兵攻打劉備,劉備大敗,前往許都依附曹操。曹操厚待劉備,封他為豫州牧,並送予軍糧和部隊,讓他到沛城收攏舊部。
慘遭縊殺
建安三年(198年),呂布再次反叛朝廷與袁術結盟,派高順、張遼攻打沛城,擊敗劉備。曹操派夏侯敦援救劉備,也被高順打敗,九月,高順等攻破沛城,俘虜了劉備妻兒,劉備敗投曹操。
曹操於是親自率兵攻打呂布,大軍抵達下邳城下。曹操送了一封信給呂布,向他陳述禍福。呂布想投降,但陳宮等人由於自己對曹操負罪,極力反對,而且對呂布說:「曹公從遠道而來,其局勢不能持久,將軍如果用步兵和騎兵駐守城外,我率領其餘人馬關了城門把守。曹操如果向將軍進攻,我帶領部隊從後面進攻曹軍;要是曹操只是攻城,將軍就從外面救援。用不了一個月,曹軍糧食全部用盡,發起進攻就可以打敗曹操。」呂布同意他的看法。呂布的妻子說:「從前曹氏對待陳公台像對待嬰兒一樣無微不至,陳宮仍然丟下曹操投靠我們。現在將軍對待公台的好處並未超過曹氏,卻打算丟下全城和妻子兒女孤軍遠出嗎?一旦發生變故,我難道還能成為將軍的妻子嗎?」於是呂布作罷,但暗中派人向袁術求救,又親自率領一千多騎兵出城,打敗後退回城內,守住城不敢出去。袁術也不能援救。呂布雖驍勇剛猛,但少謀而心胸狹隘多猜忌,不用陳宮建議,諸將又各自猜疑,所以每戰多敗。
曹操圍攻三個月,決水圍城,呂布軍中上下離心,其部下侯成、宋憲、魏續反叛,縛了陳宮投降,呂布在白門樓見曹軍攻急,大勢已去,於是令左右將他的首級交給曹操,左右不忍, 便於十二月癸酉下城投降。 呂布被捆到曹操面前,曾要求鬆綁,曹操笑說:「捆綁老虎不得不緊。」呂布又說:「曹公得到我,由我率領騎兵,曹公率領步兵,可以統一天下了。」曹操頗為心動,但劉備在一旁說:「明公您看見呂布是如何侍奉丁建陽和董太師的嗎!」呂布死前說:「大耳兒劉備最不能相信!」最終呂布被縊殺,然後梟首。其部屬陳宮、高順亦拒降被處死,張遼則領兵向曹操投降。曹操下令將呂布、陳宮、高順的首級送往許都彰功,然後下葬。
并州定襄縣(今山西省太原市以北、忻州市東南部)東南的中霍村據傳是呂布故里,有「霍清泉」、「智擒赤兔馬」、「歪脖子樹」等民間傳說,都與呂布有關。