献帝初平四年(公元193年)秋,曹操的父亲曹嵩来曹操处路上,被护送的陶谦部将张]所杀,曹操遂进兵徐州(治郯,今山东郯城),向东南扩展势力。徐州牧陶谦退守郯县。不久曹操军粮将尽,撤围回军。
次年夏,曹操再征徐州,略地至东海。曹操征徐州期间,所过大肆杀戮,一路上“鸡犬亦尽,墟邑无复行人”。加入讨董卓之战的陈留太守张邈和曹操部将陈宫对曹操不满,遂叛操,迎吕布为兖州牧。吕布为当时名将,先为董卓部将,曾与王允定计诛杀董卓。当时只有鄄城(今属山东)和东郡的范(今山东范县东南)、东阿(今山东阳谷东北)两县尚在曹操掌握之中,分别由司马荀和寿张令程昱、东郡太守夏侯等坚守,形势异常危急。曹操从徐州赶回,听说吕布屯于濮阳,遂进军围攻濮阳。二军相持百余日,蝗灾大起,双方停战,曹操军还鄄城。
此时,曹操失去了兖州,军粮已尽,袁绍派人来劝说想让曹操投靠他,将曹操举家迁到邺县(在今河北临漳县西四十里)当人质。曹操本打算答应袁绍,多亏程昱劝阻,曹操才打消这个念头。
兴平二年(公元195年)夏,曹操整军再战吕布,于巨野(今山东巨野南)大破吕布军,吕布逃往徐州投靠刘备。
从建安二年起,曹操利用他“挟天子以令诸侯”(《三国志》记载为“奉天子而令不臣”)的政治优势,东征西讨,开始了他翦灭群雄,统一北方的战争。其时,在曹操的北边,是占有冀、并、幽、青四州的袁绍;南边,是占据扬州的袁术;东南,是占据徐州的吕布;正南,是占据荆州的刘表;西边,是关中诸将。此外,董卓部将张济之侄张绣投降刘表后,屯驻于宛县(今河南南阳),对许都形成威胁。
建安三年(公元198年)九月,曹操东征徐州,进攻久与他为敌的吕布。在曹军攻势之下,吕布军上下离心,十二月,吕布部将魏续、宋宪等生擒吕布谋士陈宫归降曹操。吕布见大势已去,下城投降。曹操将吕布、陈宫、吕布部将高顺等人处死,收降吕布部将张辽、臧霸、孙观等人,初步控制了徐州。