曹操挾天子遷都許縣以後,他的主要對手是北邊冀州的袁紹,東南邊的袁術,東邊的呂布以及南邊的張繡、劉表和西北方的馬騰、韓遂,其中力量最強的是袁紹,韓遂尚未對自己構成威脅,曹操對於遠處實力較強的袁紹,先采取“和”的方針,他要討伐的第一個目標就是張繡。
在許縣屯田的第二年,曹操發現軍糧問題已經有眉目了,便開始著手討伐張繡之事。
張繡,武威祖厲(今甘肅靖遠)人。張繡是驃騎將軍張濟的侄子。邊章、韓遂在涼州作亂之時,金城的麹勝襲殺祖厲長劉雋。張繡當時為縣吏,不久就尋找機會刺殺了麹勝,本郡的人都認為他很講義氣,於是張繡招合少年,成為本地豪傑。
192年,董卓被殺,張濟與李傕、郭汜等人進攻長安,為董卓報仇。張繡跟隨張濟,以軍功升至建忠將軍,封宣威侯。196年,張濟自關中引兵入荊州界,攻穰城,中流矢而死。張繡接管了他的部隊,屯住在宛城,與劉表聯盟。
197年,曹操南征,部隊到達淯水,張繡率眾投降。曹操娶了張濟的遺孀,張繡因此懷恨曹操。曹操聽說張繡不高興,就秘密準備殺掉張繡。結果計劃泄漏,張繡偷襲曹操,曹操戰敗,長子曹昂、侄子曹安民被殺,猛將典韋戰死。張繡引兵追擊,被曹操擊退,於是張繡退回防守穰城,再次與劉表聯盟。(《傅子》說:曹操給張繡寵愛親近的胡車兒發密報,張繡聽說了以後懷疑曹操想用胡車兒刺殺他,遂反叛。)
汜水兵敗後,同年冬天,曹操再度攻張繡,擊敗了張繡和劉表的聯軍,收複了一些失地,而到了198年三月,曹操第三次進軍並圍攻張繡的根據地穰縣(今河南鄧縣)。
這一戰一打就是兩個月,並且始終沒有攻下來,此時,曹操得知袁紹發兵許縣了,曹操立即放棄繼續攻打穰城,班師回朝。張繡率軍追擊,同時,劉表的軍隊也開始夾擊曹操,在這千鈞一發的時刻,曹操卻十分淡然地給荀彧寫了一封信,信的內容是:“我到安眾(今河南鎮平)一定破敵。”到達安眾之後,曹操遭到兩麵敵人的夾擊,已經是腹背受敵,曹操趕緊命人在夜間悄悄鑿了地道,將軍械糧草都運送了過去,並埋伏了士兵,到第二天一大早,張繡、劉表發現人好像人間蒸發了,以為曹操逃跑了,便讓全軍將士追擊,誰知曹操此時突然反撲,埋伏的士兵突然衝了出來,打了張繡和劉表一個措手不及。