兖州东接青州与徐州、西连豫州、北通幽州、南下江淮,是连接四方的战略要地。曹操有了兖州以后,便和鲍信组成联军,全力镇压青州黄巾军。
黄巾军骁勇精悍,人数众多,而曹操的兖州部队,人少且疏于演练,难成大事。曹操急起补救,加强训练,严格赏罚,不断施用奇兵诡计,昼夜进攻,每次都有斩获。
一次,曹操带领步骑数千人巡视战场,结果误入青州军的营地,被青州军打得大败,损失数百人,接着在寿张(山东省阳谷县)与青州军交战,又大败而归。他的忠诚追随者鲍信也在这一战中不幸阵亡,曹操听说后痛哭失声。他高价悬赏,一定要找回鲍信的尸体,但找了一天,仍旧没有找到。只得叫工匠用木头雕刻成鲍信人像,穿上衣服去安葬,曹操亲自祭奠,放声大哭。
又经过半年的苦战,曹操才逐渐扭转失败的局面。这时,青州军由于伤亡很重,又遇到了饥荒,战斗力大大减弱。曹操瞅准时机开始劝降,并许以优厚待遇。这年冬天,在曹操的软硬夹攻之下,青州军终于全部投降。曹操开始改编青州军,挑选其中身强力壮的,编入自己的部队,称为&ldo;青州兵&rdo;,人数号称30万,还有100多万老百姓,也跟随黄巾军一起留下。
初平三年(公元192年)冬天,距曹操击降青州黄巾时间不长,袁术就和公孙瓒配合,开始进攻曹操和袁绍。龙凑(山东省平原县)一役,袁绍击溃了公孙瓒的主力。
第二年的正月,袁术进军陈留,与曹操作战。就在双方处于相持阶段时,荆州牧刘表趁机从后方偷袭袁术的根据地南阳,并切断了袁术的粮道。于是,袁术的部队不战而溃,向襄邑(河南省睢县东)、宁陵(河南省宁陵县)一带退却。曹操追击,连战连胜。袁术退到淮北,攻下寿春(安徽省寿县),并自任扬州牧。但是他西面受到荆州刘表的威胁,东面也不可能在徐州取得发展,于是想利用江东籍的将领孙策来经略大江以南作为根据地,这就直接导致了以后孙策的渡江南下。不想给东吴政权奠定了基础,而袁术却从此一蹶不振了。
初平四年(公元193年)春,曹操刚把袁术击退,同年秋天,就发动了对徐州的攻势。表面的理由很充分:为父报仇。曹操的父亲曹嵩在董卓进入洛阳之前,即已回到故乡谯县居住。后来,又因谯县一带征伐不断,不是安全地区,从谯县逃难到琅邪(山东省临沂市北)。后来,曹操占了兖州,因琅琊属于徐州,而当时徐州牧陶谦又是幽州公孙瓒的同盟,自己的父亲住在那里不妥当,于是写信去请父亲到兖州来居住。
曹嵩临出发时,把他平生所积攒的金银财货分装成100多车辆,赶奔曹操治所。他们刚走到兖州属郡的泰山县、内华县、费县境内,就遭到陶谦的部将张闿等袭击。张闿等把曹嵩全家连同曹操的弟弟曹德在内全部杀死,劫取了这100多车财物。
曹操闻讯大悲而怒,虽然后来得知此事与陶谦无关,仍派谋士荀彧、程昱留守兖州,自己亲率大军,杀奔徐州而来。其实,即使没有出现曹嵩被杀一事,曹操迟早还是要攻打徐州的。
曹操攻入徐州境内,接连攻下10多个城池,进抵彭城(江苏省徐州市)和陶谦会战。陶谦战败,逃回郯县(山东省郯城县)‐‐徐州州政府所在地固守。
曹操围攻郯县,不能夺取,只好撤退,一连攻陷虑县(河南省淮阳县西南)、睢陵(河南少淮阳县)、夏丘(安徽省泗县)等五城。当时关中和洛阳附近的百姓大多逃亡到徐州,不料曹操兵到之处,大肆屠戮。单就泗水一役,就杀死陶谦士兵和徐州百姓数万人。这是曹操杀人最多的一次,杀得几城鸡狗都不留。
曹操对徐州进行大屠杀,陶谦又急又怕,便向他的同盟公孙瓒求救。公孙瓒派部下青州刺史田楷发兵救援,田楷也心中害怕,就去联系刘备。
此时,刘备正帮孔融打黄巾军。刘备接到田楷的求救后就马不停蹄去救陶谦。刘备这时已集结几千人,陶谦再拨给他丹阳部队4000人,合起来有10000多人。后来,刘备离开田楷,归附了陶谦。陶谦向朝廷推荐刘备为豫州(河南省)刺史,驻屯小沛(江苏省沛县)。刘备从此有了较高的政治地位。
此时,曹操的军粮用完了,只好撤回。兴平元年(公元194年),曹操再次攻打徐州,一直攻到琅琊、东海各县。经过两次大的战争,陶谦的力量大大削弱。曹操正欲进军郯城,彻底消灭陶谦,不料后院起火,兖州境内发生政变,陈留太守张邈联络驻屯郡的曹操部将陈宫,迎吕布出任兖州牧,共同抗拒曹操。无奈之下,曹操只好撤兵回救兖州。
吕布本来是董卓的部将,骁勇异常,董卓日常行动常让吕布当侍卫。初平三年(公元192年)四月,司徒王允利用吕布与董卓之间的矛盾,策反吕布杀死了董卓。董卓旧部李傕、郭汜等联合起来,攻破长安城,杀死王允,劫持汉献帝。吕布败逃,率数百骑自长安出武关(陕西省商县东),去南阳奔袁术而不成,又归袁绍,为袁绍所忌,只好投奔张扬于河内。经过陈留时,和张邈关系甚密。此次,陈宫欲迎吕布出任兖州牧,张邈自然同意。
张邈原是曹操的好友,曹操在陈留起兵时,实际上是张邈的部下。现在曹操出任兖州牧,张邈反而屈居曹操之下,心中非常不满,加上张邈和袁绍不和,他恐怕袁绍和曹操合起来对自己下手,就乘曹操大军攻击陶谦,后方空虚之时,想下手夺取兖州。