初平二年(191年),曹操任东郡太守,次年为兖州牧。初平四年(193年)秋,曹操引兵征徐州,击破徐州牧陶谦,攻拔十余城。第二年,又征陶谦,拔五城。曹操征徐州,从性质上说,是扩充地盘的兼并战争;但这场战争又具有强烈的复仇色彩,曹操提出了“复仇东伐”的口号,原因是他父亲曹嵩一家被杀了,而这又与徐州牧陶谦有着直接或间接的关系。
《三国演义》第十回的后半段“报父仇曹操兴师”所描述的曹嵩一家被害的情况,大意是这样的:董卓之乱后,曹嵩一家避难琅琊郡。曹操作兖州牧后,给曹嵩写信,请曹嵩及家人来兖州居住,派泰山太守应劭带兵去接曹嵩一家。曹嵩见到书信便带领一家老小四十余人,从者百余人,车百余辆,往兖州而来。道经徐州,太守陶谦为了巴结曹操,出境迎接,设宴款待两日。特派都尉张闿率兵五百人护送。到华、费二县之间,因大雨骤至,投一古寺歇宿。张闿贪图曹家财物,驱兵杀了曹嵩全家。应劭畏罪逃脱,去投袁绍;张闿等五百人逃奔淮南去了。
历史上曹嵩是中常侍曹腾的养子,颇有钱财,花千万买得太尉之官,在初平三年带了一百多辆车的行李与金银财宝由洛阳去琅琊,准备到离现青岛不远的诸城县东南的海边去养老。他不仅是招摇过市,而且招摇过了小半个中国。曹嵩与他的仆从,浩浩荡荡地到了徐州境内,陶谦派遣两百名卫兵,交给张闿护送曹嵩。按照《吴书》的记载,这张闿抵抗不了一百多辆车行李与金银财宝的诱惑,走到泰山与华县、费县之间,就指挥卫兵把曹嵩杀了,然后劫去曹嵩的财物逃往淮南。《后汉书·陶谦传》不曾指出杀曹嵩的人是否姓张名闿,也没有说曹嵩是死在“泰山华费之间”,仅仅说了杀曹嵩的是陶谦驻在(峄县西南的)阴平县的“士卒”。这些士卒属于陶谦的一名别将所管。《应劭传》又有另外一种说法:杀曹嵩的不是什么阴平守将及其士卒,不是所谓张闿,而是陶谦的几名轻装骑兵。据《应劭传》,这几名骑兵是陶谦自己所派。原因是陶谦欲报曹操数次攻打徐州之仇。按照前两种说法不管是张闿杀的也好,陶谦的阴平守将杀的也好,都与陶谦没有直接关系,陶谦事先也没有想到会发生这样的事。如果说他有责任,也是间接的。按照第三种说法,曹嵩一家的被杀,是陶谦一手策划的,陶谦是有计划、有预谋的杀人主犯。
上述各种记载,何者为是,何者为非,不仅我们现在难以搞清,就是一千五百多年以前南朝宋人范晔在写《后汉书》时,也没有搞清,不然在同一部《后汉书》里,就不会出现各传之间的矛盾了。如果让我们采纳一种较为合乎情理的说法,那么,《后汉书·应劭传》的说法还是较为可信的。即:曹操几次进攻徐州,陶谦怀恨在心,因此派出轻骑,在应劭没有带兵到来之前,杀了曹嵩全家。《三国演义》采用了韦曜《吴书》的说法,说是陶谦派张闿领兵护送,张闿图财杀了曹嵩一家。但此说是不大可信的,因为在此之前,曹操曾数次进攻陶谦,陶谦显然是不会派人护送的。至于《三国演义》说曹嵩一家路过徐州,陶谦还设宴款待了两天,则更是不可能的了。
不过,曹操一口咬定曹嵩是陶谦派人所杀,在初平四年率大军来攻徐州,声称为父报仇。五个城的男女老少,几十万人,包括从陕西因李傕、郭氾之乱而逃到徐州来的难民,尽被曹军杀光。这五个城是现在称为徐州市的彭城、峄县之南的傅阳、睢宁西南的取虑、现在称为睢宁的睢陵与安徽泗县之西的夏丘,曹操血洗五城,所到之处鸡犬不留,使得“睢水为之不流”,这是曹操一生的大污点。