董卓死后两个月,其旧部属李傕和郭汜等本想解散部队,归隐田野,途中遇贾诩献计,召集旧部,攻入京城。
吕布守城八日,因城内叟兵叛变,吕布战败,于是率兵百余骑兵,带着董卓的首级杀出武关。
在此期间,吕布曾在城北与郭汜单挑决胜负,吕布以矛刺中郭汜,郭汜被左右军队所救,双方遂各自罢兵。
吕布先投靠袁术,但因袁术不满他自恃有功而十分骄恣、恣兵抄掠,所以被拒绝,于是吕布改投袁绍。
在袁绍处,与其联手在常山会战张燕,黑山军有一万多精兵、几千骑兵。
吕布经常骑着能够腾跃城墙、飞跨壕沟、名叫赤兔的良马,与关系较为亲近的麾下猛将成廉、魏越等几十个人骑马冲击张燕的军阵,有时一天去三四次,每次都砍了黑山军的首级回来。
连续作战十多天,终于打败了张燕的军队,吕布仗恃自己的战功,再次向袁绍要求增加军队,袁绍不答应,而吕布手下的将士也时时抢劫、掠夺,袁绍开始疑恨他。
吕布感觉不安,就请求回洛阳,袁绍同意他的要求,以天子名义任命吕布领司隶校尉,派甲士送吕布而暗中要除掉他。
吕布怀疑袁绍打自己的主意,就派人在营帐中弹着筝,自己悄悄逃了出去。
半夜那些甲士出动,乱刀砍吕布的床,认为他已经死了,第二天袁绍却得到吕布还活着的消息,于是下令关闭城门,吕布得以逃到河内,与张杨联合。
袁绍担心吕布对自己不利,再次派兵追杀吕布,那些士兵都害怕他,追上了也没有一人敢逼近。
途中经过陈留,太守张邈派人迎接吕布,对他大加款待,临分手时两人握住对方手臂发誓结好。
兴平元年,曹操向东攻打陶谦,派将领武阳人陈宫驻守东郡,陈宫趁机劝说张邈:
“现在天下分裂,英雄豪杰同时嵋起,您拥有十万人的队伍,处在可以四面作战的地方,按剑雄视天下,是可以做人中豪杰,反而被人控制,不是太卑下了吗?
现在本州的军队东征,其地空虚,吕布是猛士,善于作战,英勇无敌,将他接来一同占据兖州,观望天下形势,等候时事的变化好转,这可以纵横一世。”
张邈听从陈宫的意见,就同弟弟张超和陈宫等人迎接吕布,请他当兖州牧,占据濮阳,兖州所属郡县一同响应。
曹操知道后率领军队攻打吕布,两军对阵,吕布出战,先派骑兵冲散青州兵,曹军阵势大乱,曹操策马冒火突围,烧伤了左掌。此后双方多次交战,相持一百多天。
这时发生天旱,又有蝗虫为害,粮食不够,出现了人吃人,吕布将部队移到山阳驻扎。
兴平二年,吕布再次从东缗出发,与陈宫率领一万余人来进攻曹操。
当时,曹操部下的士兵全都出去收割麦子了,在营中的不到一千人,难以守住营寨。
曹操乃令妇人们在营垒里唱歌跳舞,营中不足一千的士兵们全都在营垒边摆出了无所畏惧的样子。
曹操营寨的西边有一条大堤,南边有一片茂密深广的树林,吕布怀疑曹操有伏兵,于是说:
“曹操多诡诈,我们不要进入伏击圈。”