徐州牧陶谦曾助公孙瓒威胁兖州,其部将张闿又将曹嵩杀死,并且抢去大批财物。曹操以替父复仇为名攻入徐州,连下十多个城池,屠杀百姓数十万,直抵彭城(今江苏徐州)。由于军粮不济,于兴平元年(194)春退兵回兖州。同年夏天,他又领兵征徐州,连得五城,“所过多所残戮”。进至下邳(今江苏睢宁西北)时,遭徐州军堵截。此时兖州发生内乱,曹操闻讯,急速撤军而回。
曹操征徐州,以荀彧、程昱留守兖州。陈留太守张邈对曹操任州牧,位居自己之上心中不悦。陈宫也因兖州名士边让被曹操借故杀害而心存疑惧。二人串通,利用自己在兖州的影响,趁曹操东征、内部空虚之机,举兵反曹,迎吕布来兖州作州牧。一时间,“郡县皆应”,仅鄄城(今山东鄄城)、范(今河南范县)、东阿(今山东东阿)三地在曹操手中。曹操回军,同吕布战于濮阳,攻入城后,巷战不利,险些被吕布骑兵抓住。他骑马冲出火阵,手被烧伤。两军相持一百多天后,均因军粮用尽,各自退兵。曹操战场失利,兖州地盘大半丧失,军队乏食,处境艰难。