曹操曾经参加西园新军统帅部,后担任典军校尉,又和袁绍拉拢得很好,因此,到了袁绍劝外戚何进杀宦官时,身为宦官之孙的曹操到这时居然也能参加到土夫集团的核心圈里去,与闻消灭宦官的密谋了。袁绍劝何进杀宦官,曹操也参加了意见,袁绍主张杀得一个不剩,曹操却认为只要惩办几个罪大恶极的魁首就够了。可见他对消灭宦官的看法,和士大夫地主袁绍迥然不同,这都和曹操的出身以及曹操父子与宦官集团的瓜葛是分不开的。
但就当时形势来看,只惩办几个罪大恶极的魁首,何进当时的力量完全能够做到;如果要把宦官杀得一个不剩,就得动用董卓的军队,即使何进不死,董卓军队只要开进洛阳,政权也迟早会落入董卓手里,所以权衡利害,曹操的意见是可取的。董卓入据朝廷后不久,废少帝,立献帝,把大权掌握在自己手里。董卓的一切政治措施及其军纪败坏,都说明了董卓必然失败并成为人民的痛恨目标。
曹操眼看董卓是要失败的,因此,董卓虽然想拉拢曹操并用汉政府名义发表曹操为骁骑校尉,可是曹操还是不愿和董卓合作,而与袁绍等先后退出洛阳。曹操在陈留(今河南陈留)纠集宗族、宾客、部曲起兵讨卓,陈留孝廉卫兹出钱助操,合兵五千人。曹操那时因为没有地盘,在给养诸方面,不得不受陈留太守张邈的接济,从而在行军作战的指挥上也不得不受张邈的节制。兖州的军队有十多万人,集结在酸枣(今河南延津北)一带,曹操也随着张邈驻扎在酸枣前线。
关东军都是新编成的队伍,论起战斗经验来,远远不及董卓的西北军,因此山东牧守谁都不敢再向洛阳推进一步。曹操认为董卓破坏洛阳,“劫迁天子”,举国震动,正应该趁这一个有利时机来和董卓决战,于是把自己的军队向成皋前线移动,希望十多万兖州军在他的军队影响之下,同时向前推进。曹操军队向成皋推进到荥阳汴水的时候,与西北军徐荣部遭遇,战斗失利,土卒死伤很多,卫兹战死,曹操自己也为流矢所伤,所骑的马也受重伤。幸亏他的堂弟曹洪沿汴水找到一条船,才得乘夜逃脱。
曹操经过这次挫折,感到自己军队太少,于是和他的亲信将领曹洪、夏侯惇等到扬、徐二州招募军队,勉强又拼凑到几千人,再度北上。这次他不再返回酸枣,而是渡过黄河,赶到河内(郡治怀,今河南武陟西南)前线,直接受盟主袁绍的指挥了公元190至191年之间,关东军统帅部内部,即山东的州郡牧守之间不断发生矛盾。
开始,兖州刺史刘岱和东郡太守桥瑁发生摩擦刘岱火并了桥瑁,派王肱去代理东郡太守。不久,袁绍也夺取了冀州牧韩馥的地盘,而自领冀州牧,逐渐在黄河中下游形成一股强大的力量。关东州郡起兵讨伐董卓,双方胶着在荥阳和河内一带,内战的持续进行与扩大,大大地加重了人民的负担。山东、河北地区本来就已发展到百万之众的青州黄巾军和河北黑山军,更以燎原之势发展起来。
公元191年的秋天,以于毒、白绕、畦固为首的黑山农民军,开始向冀州的心脏邺城推进,并有渡过黄河南攻兖州的动向而这时青州的黄巾军一百多万人,因受到袁绍所委派的青州刺史减洪的军事压力,也正分两路向河北移动,有与河北的黑山军会师之势。设使河北的黑山军渡黄河而南,或青州的黄巾军渡黄河而北,两支数近百万的大军一旦会师,黄河中下游的力量对比就会引起急遽而深刻的变化。这样,关东州郡尽管充满内部矛盾,还是要集中力量来对付农民军。
袁绍一方面要用堵击或拦截的方法来破坏农民军两路会师的计划;一方面又想利用这一时机,把自己的势力扩展到兖州使青兖、冀三州联系起来,这样,黄河中下游就全部受他的控制了。要完成这一任务,不得不借重曹操。于是袁绍以东郡太守王肱不能抵抗黑山农民军为借口,派曹操引兵进入东郡,围攻黑山军。在曹操刚一击溃以白绕为首的黑山军于濮阳(今河南濮阳南)之后,袁绍就以盟主的资格,发表曹操担任东郡太守的职位,袁绍此时满以为自己的势力范围从此可以扩大到兖州地区了。