初平二年(191年),曹操任東郡太守,次年為兗州牧。初平四年(193年)秋,曹操引兵征徐州,擊破徐州牧陶謙,攻拔十餘城。第二年,又征陶謙,拔五城。曹操征徐州,從性質上說,是擴充地盤的兼並戰爭;但這場戰爭又具有強烈的複仇色彩,曹操提出了“複仇東伐”的口號,原因是他父親曹嵩一家被殺了,而這又與徐州牧陶謙有著直接或間接的關係。
《三國演義》第十回的後半段“報父仇曹操興師”所描述的曹嵩一家被害的情況,大意是這樣的:董卓之亂後,曹嵩一家避難琅琊郡。曹操作兗州牧後,給曹嵩寫信,請曹嵩及家人來兗州居住,派泰山太守應劭帶兵去接曹嵩一家。曹嵩見到書信便帶領一家老小四十餘人,從者百餘人,車百餘輛,往兗州而來。道經徐州,太守陶謙為了巴結曹操,出境迎接,設宴款待兩日。特派都尉張闓率兵五百人護送。到華、費二縣之間,因大雨驟至,投一古寺歇宿。張闓貪圖曹家財物,驅兵殺了曹嵩全家。應劭畏罪逃脫,去投袁紹;張闓等五百人逃奔淮南去了。
曆史上曹嵩是中常侍曹騰的養子,頗有錢財,花千萬買得太尉之官,在初平三年帶了一百多輛車的行李與金銀財寶由洛陽去琅琊,準備到離現青島不遠的諸城縣東南的海邊去養老。他不僅是招搖過市,而且招搖過了小半個中國。曹嵩與他的仆從,浩浩蕩蕩地到了徐州境內,陶謙派遣兩百名衛兵,交給張闓護送曹嵩。按照《吳書》的記載,這張闓抵抗不了一百多輛車行李與金銀財寶的誘惑,走到泰山與華縣、費縣之間,就指揮衛兵把曹嵩殺了,然後劫去曹嵩的財物逃往淮南。《後漢書·陶謙傳》不曾指出殺曹嵩的人是否姓張名闓,也沒有說曹嵩是死在“泰山華費之間”,僅僅說了殺曹嵩的是陶謙駐在(嶧縣西南的)陰平縣的“士卒”。這些士卒屬於陶謙的一名別將所管。《應劭傳》又有另外一種說法:殺曹嵩的不是什麼陰平守將及其士卒,不是所謂張闓,而是陶謙的幾名輕裝騎兵。據《應劭傳》,這幾名騎兵是陶謙自己所派。原因是陶謙欲報曹操數次攻打徐州之仇。按照前兩種說法不管是張闓殺的也好,陶謙的陰平守將殺的也好,都與陶謙沒有直接關係,陶謙事先也沒有想到會發生這樣的事。如果說他有責任,也是間接的。按照第三種說法,曹嵩一家的被殺,是陶謙一手策劃的,陶謙是有計劃、有預謀的殺人主犯。
上述各種記載,何者為是,何者為非,不僅我們現在難以搞清,就是一千五百多年以前南朝宋人範曄在寫《後漢書》時,也沒有搞清,不然在同一部《後漢書》裏,就不會出現各傳之間的矛盾了。如果讓我們采納一種較為合乎情理的說法,那麼,《後漢書·應劭傳》的說法還是較為可信的。即:曹操幾次進攻徐州,陶謙懷恨在心,因此派出輕騎,在應劭沒有帶兵到來之前,殺了曹嵩全家。《三國演義》采用了韋曜《吳書》的說法,說是陶謙派張闓領兵護送,張闓圖財殺了曹嵩一家。但此說是不大可信的,因為在此之前,曹操曾數次進攻陶謙,陶謙顯然是不會派人護送的。至於《三國演義》說曹嵩一家路過徐州,陶謙還設宴款待了兩天,則更是不可能的了。
不過,曹操一口咬定曹嵩是陶謙派人所殺,在初平四年率大軍來攻徐州,聲稱為父報仇。五個城的男女老少,幾十萬人,包括從陝西因李傕、郭氾之亂而逃到徐州來的難民,盡被曹軍殺光。這五個城是現在稱為徐州市的彭城、嶧縣之南的傅陽、睢寧西南的取慮、現在稱為睢寧的睢陵與安徽泗縣之西的夏丘,曹操血洗五城,所到之處雞犬不留,使得“睢水為之不流”,這是曹操一生的大汙點。