建安二年公元一九七年,春季正月,曹操決定起兵親征張繡,并想占領南陽,他命夏侯惇先鋒,自統中軍,于禁率領后軍,兵分三路,水陸并下。軍馬集結到淯水之濱,安營下寨。雙方在淯水發生激戰,張繡力不能敵。又向劉表發書告急求援。
張繡的謀士賈詡勸他說:“曹操兵勢強大,富有謀略,挾天子以令諸侯,兵鋒所到之處,各路英雄紛紛敗北,早晚必得中原。劉表雖然是仁政之君,但是缺乏軍事謀略,荊州早晚會歸屬曹操。將軍不如舉眾投降,將來也能封侯拜將。”張繡采納了他的建議,使賈詡到曹操寨中交涉。
曹操聽說賈詡來商談投降事宜,感到格外高興,立即接到帳下,熱情招待。通過會談,他發現賈詡滿腹韜略,遠見卓識,深為欽佩,想用他為謀士。賈詡說:“某昔日跟從李催得罪天下,現在跟從張繡,他言聽計從,信任不疑,怎么能忍心丟棄他呢。”于是告辭而去。
次日,張繡在賈詡的陪同下,來見曹操,曹操對他熱情招待,接受了張繡的投降,隨后改編了他的部隊。
曹操聽說張濟的妻子鄒氏長得十分美麗,就悄然把她接到帳中,飲酒作樂,同帳共宿。張繡聽到家人的密報,非常惱怒,后悔不該向他投降。曹操聽到張繡懷恨在心,就想殺掉張繡,永除后患。他知道張繡有個親信驍將胡車兒,勇冠其軍,就特意召見,親手贈送黃金,示意日后提拔重用。張繡因此察覺到曹操企圖通過胡車兒行刺他,于是思謀安全之計。這時,黃忠隨黃祖率部趕來支援,分別結營抵擋曹軍,張繡決心趁機反攻曹操。
當日,張繡密請賈詡商議對策,他說:“曹操是假仁義無廉恥的卑鄙小人,漢朝國賊,衣冠禽獸,欺我太甚,這樣好色放蕩,哪里像安定國家的英雄。張某剛剛投降,他就這樣不擇手段,將來一切安定下來,他就會更加猖狂。我沒有讓他費一兵一卒,即率部向他投降,混到今天這種地步,真是后悔莫及呀!實在對不起劉荊州,對不起南陽的士民。像曹操這種敗類,張某只能討伐,怎么能向他投降”。賈詡也覺得曹操品行低下,辦事不合情理,就支持張繡的軍事行動,向他獻上一條密計,張繡依計而行。乘夜派親信去給黃忠送信,約請合擊曹操。
次日,曹操出帳議事,張繡向曹操說:“新招南陽的士兵紛紛逃亡,請求移屯中軍北邊,以便控制收服。”曹操當即批準。張繡所在營地在淯水之濱,河邊低洼,道路難走,移營要走高道,而這條高道直通曹操的中軍大營,走這條高道就能直接襲擊曹操。于是,張繡又對曹操說:“車輛太少,軍械沉重,請求士兵各自披甲執刃,以節省時間減少麻煩。”曹操并沒有發覺張繡有異常變動,對他深信不疑,依然批準了他的請求。張繡就以此為由調拔部隊移到中軍北面,準備夜間舉兵。由于典韋在曹操中軍帳房外面宿衛,沒有曹操的同意,外人一概不準進入,這給夜襲曹操的行動增加了極大的難度。張繡知道典韋非同勇猛,難以接近,決定請來黃忠對付典韋。
典韋,陳留郡己吾縣人,身材魁悟,體力過人,有志節,好行俠仗義。應邀替劉氏報仇,前去刺殺曾經擔任富春縣長的李永。他暗藏匕首,乘車帶上禮品,假裝拜訪客人,伺機殺死李永,一時震驚街市,雖然有幾百人在后面追擊,卻沒有人敢靠近他,典韋終于輾轉脫逃,名揚當地。初平年間,典韋應募到張邈部下當兵,隸屬于司馬趙寵,當時軍營的旗幟又長又大,一般軍士都舉不動,典韋一只手輕而易舉地就扛起來,趙寵非常驚異他的才力。后來他又隸屬夏侯惇,屢次作戰都有斬獲,立下多次戰功,因此被封為司馬,曹操在濮陽征討呂布,利用夜晚偷襲,打到天明終于獲勝。呂布親自率領援軍趕到,三面圍攻曹操,一直打到日影偏西,曹操處境十分危險,急忙召募敢死隊。典韋首先響應,他手拿矛戟奮勇作戰,身擋一面,冒著箭雨抵抗敵人,終于轉敗為勝,使曹操安然回營,典韋因此被升為都尉。曹操把他安置在身邊,讓他帶領手下親信數百人,常常圍繞中軍帳,保護大帳安全。典韋手下也是特選的部卒,每次戰斗都很勇猛,典韋總是一馬當先,沖鋒陷陣,因此被升為校尉。典韋對曹操十分忠誠,辦事小心謹慎,每日從早到晚侍衛曹操,夜里就睡在曹操營帳里。他喜歡喝酒,時常跟著曹操參加酒宴,盡情吃喝。典韋善用雙戟和長刀,因此軍中都說:曹公帳下有典君,手提雙戟八十斤。張繡投降曹操以后,曹操非常高興,請張繡和他的將帥聚會飲酒,曹操勸酒的時候,典韋手提大斧站在后面,曹操到別人面前,典韋兩眼注視對方,張繡和他的將領都不敢抬頭觀看。
張繡向黃忠介紹完典韋的情況,感嘆地說:“這個典韋實在不好對付啊,我有親信驍將胡車兒,能和典韋相提并論,可是他已經被曹操收買了,這次突襲行動,我都沒有告訴他,希望漢升助我一臂之力。”黃忠說:“保衛南陽是我的職責,反擊曹操是我的義務,我必定全力以赴,支援張將軍夾擊曹操。”張繡向他透露了曹營的分布地點,和軍隊的配備數量,然后約定了襲擊時間。
張繡告辭以后,黃忠立即布置,命令部下作好準備。當夜,黃忠率領人馬消悄抵達張繡的營寨附近。張繡聞報黃忠來到,心情倍加振興,一到二更時分,發令全軍突襲曹操的中軍營寨,黃忠隨后率部出擊。
曹操正在帳中和鄒氏飲酒作樂,忽聽外面人喊馬嘶,金鼓大作,火光四起,不禁大吃一驚,詢問情況,左右來報說:“張繡舉兵進營了,來勢十分兇猛,我軍抵擋不住。”曹操慌忙起身,呼喚典韋迎戰。典韋喝酒之后,躺在榻上睡著了,聽到呼喊,立刻起身,提上雙戟保護曹操。這時張繡領兵已到轅門,各挺長槍殺來,典韋奮力向前,守住營區大門,手拿長戟,左右攻擊,長戟一叉,就有十余人應聲而倒。他手下十幾個人全都以一當十,擋住了張繡的進攻。
這時黃忠率領騎兵趕到,只見火光映照著一個五大三粗的人,料定他就是典韋,看到典韋沒騎戰馬,黃忠也跳下馬來,徑直來到典韋面前,劈頭一刀砍去,典韋一手持戟架住大刀,一手持戟反攻。黃忠左手抓住長戟,一下就奪了過來,隨即一腳把他踢得連退幾步。典韋手持單戟猛沖過來,黃忠大刀一掄,那條長戟飛向夜空,隨后一刀將他砍倒在地,再也不能動彈,身后軍士上前取下首級。黃忠和張繡的部隊迅速沖進正門,控制了曹軍中營。
曹操匆忙上馬,從側門逃走,身邊只有他的兒子曹安民跟隨在后,慌忙之間,沒有顧上騎馬,步行跟著曹操飛跑,被追兵趕上,一刀砍死。曹操揚鞭催馬拼命逃竄,突然肩上中了一箭,他忍住疼痛馬不停蹄,不敢放松一步。剛剛走到淯水河邊,黃忠和張繡的騎兵已經趕到。曹操慌忙驟馬過河,剛登到岸上,黃忠一箭射來,曹操應聲翻落馬下,摔得鼻青臉腫,急忙起身提韁拉馬,那馬身中三箭,氣息奄奄,已經不能再跑了,急得他四處尋望生路。危急時刻,長子曹昂縱馬趕到,趕緊把自己的戰馬獻給曹操,曹操也不客氣,接過韁繩上馬就跑。曹昂拾起曹操丟下的寶劍站在岸上,阻擋追兵,他說:“誰敢過河,死路一條。”黃忠一箭射過淯水,正中曹昂頭部,當即倒地死亡。
曹操拼命逃脫,路逢屬下將士,收集殘落散兵,退到舞陰休整。張繡駐守穰城,繼續聯合劉表。黃忠隨后攻打打曹軍,收復舞陽。
曹操這次攻打南陽,一舉收服張繡,戰果相當輝煌,因為享受一時歡樂,不擇手段貪戀女色,導致張繡降而復叛,暗兵突襲,使他損兵折將,兩子身亡,這個代價非常沉重。
袁術在壽春登基稱帝,自號仲家,設置百官。曹操為了分解袁術的勢力,派使者攜帶獻帝的詔書前去任命孫策擔任騎都尉,繼承他父親孫堅的爵位烏程侯,兼任會稽太守,并下令孫策討伐袁術。孫策想獲得將軍的名號,以提升自己的地位,使者王誧就代表獻帝任命他為明漢將軍。于是孫策整理行裝開始出戰。
冬季十一月,曹操再次攻打張繡。張繡聞知曹操引兵來犯,急忙發書報給劉表,讓他出兵接應。曹操攻下湖陽、隨后又攻克舞陰,擒獲守將鄧濟,乘勝進軍至淯水,攻打宛城。劉表命黃忠率部支援張繡,側擊曹操,配合張繡作戰。曹操親自率軍進至穰縣城下,攻打張繡。黃忠屯兵城外,與張繡互為聲勢,夾擊曹軍。十二月,黃忠夜襲曹操后營,張繡出城攻打曹軍前營,大獲全勝,繳獲大批輜重,迫使曹操返回許都。黃忠乘勝收復舞陰、湖陽。