反複投奔終占徐州
呂布殺了董卓,董卓的部將對呂布又畏又恨。隨後不久,董卓的部將李傕攻打長安(今陝西西安西北),呂布無法抵擋,遂率數百騎將董卓的頭顱係在馬鞍上,出武關(今陝西商州東),奔南陽(今河南獲嘉縣北),想去投靠袁術。但袁術知呂布此人薄情寡義,反複無常,所以拒而不納。呂布又投奔河內的張楊。這時,李傕重金懸賞捉拿呂布。張楊的部下都想算計呂布,呂布見張楊處不能久留,遂奔逃歸袁紹。
呂布與袁紹在常山(今河北曲陽西北)大戰黑山起義軍張燕。呂布因有能馳城飛塹的坐騎“赤兔”和健將成廉、魏越衝鋒陷陣,所以斬將殺敵,破陣而回。這樣交戰十幾天之後,張燕潰敗。呂布自恃破敵有功,便向袁紹請求增兵,袁紹沒有答應。同時呂布帳下將士又橫暴無忌,毫無軍法紀律。這使袁紹對呂布也更加不滿。呂布自感無安身之處,便向袁紹請求回洛陽。袁紹答應了他,並給了他個司隸校尉的官職,然而暗中又囑托送他的將士們找機會將呂布殺掉。呂布識破了袁紹的這一陰謀,於是巧做安排,派人在自己的軍帳中彈箏,製造一個呂布在帳中取樂的假象,以迷惑袁紹然後悄悄逃出。夜裏袁紹的士兵包圍了呂布的軍帳去襲殺呂布,呂布早已不見蹤影。
陳留太守張邈在董卓之亂與曹操共起義兵,接納了呂布,同時,又奉迎呂布為兗州牧,占據濮陽,郡縣都望風影附,隻有鄄城、東阿、範縣堅守。曹操聞訊大驚,急忙回軍進擊呂布。兩軍相持了一百多天,曹操大勝,呂布向東奔逃,又歸附了劉備。
當時,劉備與袁術正陳師於淮上,一場大戰再所難免,然袁術自知呂布之本性,於是寫了一封拍馬屁的信送與呂布,並信誓旦旦地說如果呂布幫忙打敗劉備,他袁術願意奉以生死。先送軍糧20萬斛大米作酬資,並保證以後供給不斷。呂布接信如獲至寶,遂率兵水陸並下,直逼下邳,由於劉備部將許耽背叛,放呂布兵馬進入下邳,張飛被呂布大敗。同時,呂布又將劉備的老婆孩子一卷而空。無奈之下,劉備向呂布請降。呂布也恨袁術食言不如約繼續送軍糧,就接受劉備的請和,任命劉備為豫州刺史,而自稱徐州牧。
轅門射戟去就無常
袁術擔心呂布與自己為敵,便為兒子向呂布的女兒求婚,呂布答應了他。袁術派大將紀靈等率兵3萬進攻劉備,劉備向呂布請求派兵增援。部將勸呂布借袁術之手殺掉劉備,呂布卻決定立即赴救。他說:“袁術如果打敗劉備,就會聯合北方的將領們對我形成包圍。我們不能不救!”紀靈等人聽說呂布到來,都收束兵眾,不敢再行進攻。
呂布在小沛西南一裏遠的地方安下營寨,派人請紀靈、劉備等一起宴飲。飲酒中間,呂布對紀靈說:“劉備是我的弟弟,他被諸位圍困,我來救他。我這人生來不喜歡交戰爭執,所以前來調解紛爭。”說完,命令手下在營門豎起一把戟,彎弓搭箭,回過頭來對眾人說:“我要射戟上的小枝,如果一箭射中,你們就應該和解釋圍,罷兵歸去。如果射不中,那就任憑你們爭個你死我活!”諸將凝神屏息,呂布一箭射去,正中戟上小枝,眾從皆大讚他的射藝。第二天,各方均領兵歸去。
然而,這時劉備已擁兵萬餘人,這又使呂布不安起來。於是,他又自己出兵進攻劉備,劉備不敵,投奔曹操。
建安二年(197)春,袁術在壽春稱帝。為減輕政敵壓力,同時爭取有益的力量,五月,袁術派韓胤把稱帝的事通告呂布,並提出為兒子迎娶呂布之女。
沛相陳珪擔心袁術、呂布一旦聯姻,徐州和揚州聯合起來,為害國家,就去勸阻呂布。呂布這時又想起了當年落難之時投奔袁術,袁術不肯收容自己的舊恨,於是改變主意,追回已上路的女兒,斷絕了和袁家的婚姻,把韓胤也帶上鐐銬,押到許都交給曹操。曹操殺了韓胤。
當時,漢獻帝因流落河東曾親筆命呂布迎駕,但呂布因部隊缺乏軍資無法迎駕而上報朝廷。獻帝遂命呂布為平東將軍,封平陶侯,但使者卻丟了天子詔,後來,曹操又派奉車都尉王則為使者,攜帶詔書印綬來見呂布。使者還帶來了曹操的一封親筆信,信中希望呂布能夠對付公孫瓚、袁術等人。當時陳珪想派兒子陳登去見曹操,呂布始終不答應。如今,呂布得詔高興,就派陳登捧著表章去謝恩,表示自己的感激之情及願意效命之意。同時,用一條上好的綬帶回贈曹操。