興平元年(194年),曹操以為父報仇為名再度攻打徐州,徐州牧陶謙不能抵擋,向青州刺史田楷求救。田楷與劉備一起前往救援,劉備自有兵千余人及幽州烏丸雜胡騎,又略得饑民數千人,到徐州后,陶謙又給劉備增丹楊兵四千,劉備于是又歸屬陶謙。而此時張邈、陳宮叛迎呂布,攻打曹操,曹操根據地失陷,于是回兵兗州。陶謙表劉備為豫州刺史,安排他駐軍在小沛。[9]
劉備在豫州時,辟陳群為別駕,舉袁渙為茂才。[168-169]
同年,陶謙病重,對別駕麋竺說:“非劉備不能使徐州安定。”陶謙死后,麋竺率徐州人民迎接劉備,劉備不敢接受。陳登對劉備說:“如今漢室四分五裂,海內傾覆,要建功立業,機會就在今日。徐州富裕,有戶口百萬,想委屈使君管理本州。”劉備說:“袁公路近在壽春,他四代人里有五位做到三公,為海內所歸,您可以把徐州交給他。”陳登說:“公路驕縱而奢侈,不是治理亂世的人。現在我們愿意為使君提供步騎十萬,上可以匡君濟民,建立五霸之業,下可以割據守境,在竹帛上留下功名。如果使君不愿聽從,那陳登也不敢聽從使君說的。”北海相孔融對劉備說:“袁公路豈是擔憂國家到能忘記自家的人?墓中的枯骨,又何足介意呢!今日的事,是百姓希望能托付于一個有能力的人,上天賜予而不收下,將來會追悔莫及。”劉備遂領徐州牧。
興平二年(195年),曹操擊敗呂布,呂布投奔劉備。[280]
建安元年(196年),曹操表劉備為鎮東將軍,封宜城亭侯。袁術率大軍進攻徐州,劉備留張飛守下邳,自已率軍迎擊袁術,兩軍在盱眙、淮陰相持一個多月,各有勝負。這時,張飛欲殺陶謙舊將曹豹,曹豹率眾自守,并引呂布偷襲下邳,擊破張飛,俘虜了劉備的妻小。劉備得知后引軍退還,到下邳時,軍隊潰散,乃收余軍東取廣陵,為袁術所敗,轉軍海西,困頓至極,吏士大小相食。賴東海麋竺以家財相助才得以脫困。[164]劉備打算回到小沛,于是向呂布求和,呂布以劉備為豫州刺史,讓他回到豫州,與自已并力攻擊袁術,又將劉備的妻小以及部曲家屬歸還,在泗水上為劉備送行,劉備回到小沛。[11][162-165]
袁術又命紀靈率三萬人攻打小沛,劉備向呂布求救。呂布屯在小沛外,派人招劉備、紀靈前來,以“轅門射戟”化解此事。[166]
不久后,劉備再度召募了萬余人的軍隊,呂布于是率軍進攻小沛。劉備戰敗,前往許都投奔曹操。曹操手下的程昱、郭嘉皆稱劉備有雄才,向曹操建議趁早對劉備動手,曹操不從,給與劉備兵馬糧草,讓劉備做豫州牧。其后,人稱劉備為“劉豫州”。
建安二年(197年),韓暹、楊奉縱暴于徐、揚之間,劉備誘殺楊奉。[249-250]
建安三年(198年)春,呂布派人帶著黃金到河內買馬,被劉備的兵士鈔掠。于是,呂布派遣中郎將高順和北地太守張遼進攻劉備,曹操雖派夏侯惇援救,但被擊敗。九月,沛城被攻破,劉備妻小再次被擄,劉備單身逃走。十月,劉備在梁國國界中與曹操相遇,于是與曹操聯合進攻呂布。呂布被擒后,劉備以呂布事丁原、董卓之事,勸曹操殺死呂布。[251]曹操收臧霸后,曾讓劉備去叫臧霸送上徐翕、毛暉(二人在兗州之亂時背叛曹操)的首級,臧霸不愿行此事,也請劉備向曹操解釋。[252]其后劉備與曹操回到許都,被封為左將軍。曹操厚待劉備,與他出則同輿,坐則同席。[13-14]
建安四年(199年),車騎將軍董承受衣帶詔,與劉備及偏將軍王子服、長水校尉種輯、議郎吳碩謀誅曹操。尚未行動,曹操對劉備說:“當今天下可稱英雄的,只有你和我。袁本初那些人,不足掛齒。”劉備正在吃飯,聽到這話暗吃一驚,不覺將筷子掉在地上。恰巧天上打了個響雷,劉備借機對曹操說:“圣人說,迅雷風烈必變。這話真不錯,一個響雷,竟使我驚成這樣!”[15][108][160-161]
袁術欲從下邳北上投靠袁紹,曹操令劉備督朱靈、路招出征,前往下邳截擊袁術。夜間,劉備立即東行,程昱、郭嘉再次勸曹操,曹操于是派人去追劉備,但已追不上。袁術無法通過下邳,很快就病死了。[118][160][170]
劉備到下邳,朱靈等人返回。劉備于是殺死徐州刺史車胄,留關羽守下邳,自已回到小沛。昌豨起兵反曹操,徐州眾多郡縣也響應劉備,劉備的軍隊到達數萬人,又派孫乾北上聯合袁紹,袁紹派遣騎兵佐助劉備。曹操令劉岱、王忠率軍攻擊劉備,但不能取勝。劉備對劉岱等人說:“讓你們前來,奈何不了我,若曹公親自來,結果尚未可知。”[118][159][173][175][189]