黃巾餘黨管亥率眾軍攻打北海,北海相孔融被大軍所圍,情勢危急,便派太史慈突圍向劉備求救,劉備驚訝地答道:「北海相孔融居然知道世上有劉備!」便立即派三千精兵隨太史慈去北海救援,黃巾軍聞知援軍至,都四散而逃,孔融逐得以解圍,後袁紹攻公孫瓚,劉備與田楷東屯齊。
公元194年(興平元年),曹操以為父報仇為名再度攻打徐州,徐州牧陶謙不能抵擋,向青州刺史田楷求救,田楷與劉備一起前往救援,劉備自有兵千餘人及幽州烏丸雜胡騎,又略得饑民數千人,到徐州後,陶謙又給劉備增丹楊兵四千,劉備於是又歸屬陶謙。而此時張邈、陳宮叛迎呂布,攻打曹操,曹操根據地失陷,於是回兵兗州,陶謙表劉備為豫州刺史,叫他駐軍在小沛。
公元195年(興平二年),陶謙病重,對別駕麋竺說:「非劉備不能使徐州安定。」陶謙死後,麋竺率徐州人民迎接劉備做太守,劉備不敢接受,在陳登、孔融的再三勸說下,劉備遂領徐州。
公元196年(建安元年),曹操表劉備為鎮東將軍,封宜城亭侯,袁術率大軍進攻徐州,劉備迎擊,兩軍在盱眙、淮陰相持,這時,呂布偷襲了下邳,俘虜了劉備的妻子,劉備回軍,中途軍隊潰散,乃收余軍東取廣陵,為袁術所敗,轉軍海西,困頓至極,得從事東海麋竺以家財助軍,於是向呂布求和,呂布將劉備的妻子歸還給他,劉備回到小沛。
不久,劉備再度召募了萬餘人的軍隊,呂佈於是率軍進攻小沛,劉備戰敗,前往許都投奔曹操,曹操給與劉備兵馬糧草,讓劉備做豫州牧,其後,人稱劉備為「劉豫州」。
公元198年(建安三年),呂布派高順和張遼進攻劉備,曹操雖派夏侯惇援救,但被擊敗,沛城最終被攻破,劉備妻子再次被擄,劉備單身逃走,劉備在梁國國界中與曹操相遇,於是與曹操聯合進攻呂布,呂布投降後,劉備力勸曹操殺死呂布,其後劉備與曹操回到許都,被封為左將軍。
公元199年(建安四年),車騎將軍董承受漢獻帝劉協衣帶詔,劉備起初未敢加入,後曹操與劉備「煮酒論英雄」,曹操對劉備說:「今天下英雄,就是你跟我。」劉備心驚,筷子掉落,知道曹操難容自己,遂與董承等人同謀,恰逢當時曹操派劉備與朱靈一起攻擊袁術,袁術於途中病死。
其後劉備進軍下邳,殺徐州刺史車胄,留關羽守下邳,行使太守的職責,自己回到小沛,東海昌豨以及諸郡縣多從劉備,劉備有了數萬兵馬,於是北連袁紹抗擊曹操,曹操派司空長史沛國劉岱、中郎將扶風王忠往攻,被劉備擊退。
公元200年(建安五年)春,衣帶詔事發,曹操親自東征劉備,劉備戰敗,關羽被擒,劉備逃往青州,青州刺史袁譚,劉備曾舉薦他為茂才,率領軍隊迎接劉備,劉備隨袁譚到平原,派人告訴袁紹,袁紹離開鄴城二百里來迎接劉備,停留了一個多月,劉備被打散的士卒也慢慢的集結於此。