建安十年(205)10月,曹操回到了鄴縣。
此次出征歷時整一年,但收穫頗豐,攻下了南皮,掃蕩了幽州殘敵,將袁熙、袁尚趕到了塞外,原來袁紹控制地區的北方四個州中,冀州、青州、幽州已全部佔領,加上并州的高幹已經投降,掃平北方的目標看來實現了。
但是出了意外,就在曹操回師鄴縣時,并州刺史高幹發起了叛亂。這有點兒不太好理解,袁氏勢力尚在時不叛亂,現在卻要叛亂,高幹不知道是怎麼打算的。
高幹不是弱智,也許這裡面另有隱情,比如他投降曹操時會不會有約定,要曹操保證袁氏兄弟的安全,曹操殺了袁譚,趕跑了袁熙和袁尚,還把袁熙的妻子給自己當了兒媳婦,所有這些,讓高幹無法忍受。
所以,在時機選擇上高幹也沒有太多考慮,他如果早有預謀,就不會選擇在建安十年(205)10月起兵,因為這時曹操率主力已經回師到鄴縣。真想大幹一場的話,應該在曹軍主力激戰於南皮時動手,或者最少也應該比現在提前兩三個月,在曹操率主力打到現如今的北京市密雲水庫一帶時動手。
把叛亂的時間定在這個時候,注定不會有什麼奇跡發生。
并州刺史部的範圍約相當於今山西省大部、陝西省北部地區以及內蒙古自治區的河套一帶,現在的太原、大同、呼和浩特、包頭、榆林、延安都在其內,治所是太原郡的晉陽縣,即今山西省太原市。由太原郡向東是上黨郡,上黨郡與鄴縣所在的冀州刺史部魏郡之間只隔著一座太行山。
上黨郡太守是曹操的人,高幹把他抓了起來,之後進軍並佔領了太行山中的軍事要塞壺關,妄圖以太行山為依托抵擋曹軍的進攻。
壺關,太行山裡的一個山口,也稱壺關口或壺口關,位於今山西省壺關縣,屬長治市,北有百谷山,南有雙龍山,兩山夾峙,中間空斷,山形像一把壺,所以稱為壺關。
曹操派樂進和李典為前鋒進擊壺關,隨後他親率大軍趕到,於建安十一年(206)正月把壺關圍住,高幹留下部將夏昭、鄧升守城,自己前往南匈奴單于那裡求救。
袁熙、袁尚投奔的是蹋頓烏桓人,除此之外,袁氏的傳統盟友裡還有一支少數民族武裝是南匈奴,南匈奴單于於扶羅跟袁紹關係密切,官渡之戰時南匈奴也派兵為袁紹助戰。
現在於扶羅已經死了,他的兄弟呼廚泉繼位,呼廚泉看到曹操勢力日益強大,不敢與他為敵,對於高幹的請求,呼廚泉不予理睬。
高幹無奈,只得帶著幾名隨從前往荊州刺史部,要找劉表搬救兵,但路上被一支地方武裝截住,高幹就這樣被殺了。
這支類似於民兵或民團的武裝組織首領叫王琰,是上洛都尉。上洛是哪裡不詳,或許與洛陽有關,因為高幹由并州南下荊州有可能路過河洛一帶,而都尉相當於縣公安局局長。
王琰把高幹的首級呈送給曹操,立即被封了侯,受到大家的羨慕。只有一個人高興不起來,整天待在屋裡哭,她就是王琰的妻子。因為王琰從此將要富貴,就會娶更多的小妾,從而會奪走對自己的愛。
沒有高幹,壺關這場仗按說不用打了,但結果不是。
夏昭、鄧升卻很頑強,加上壺關城很堅固,曹軍久攻不下。曹操火了,發佈軍令:「城池攻破後,把他們全部活埋!」
但是又打了三個月,還是沒有攻下。這就是冷兵器時代的攻城戰,易守難攻,從之前的郯城、雍丘到東武陽、下邳、鄴縣,以及之後的陳倉之戰,都是在力量懸殊的情況下打得曠日持久,常常幾個月甚至一年都攻不下來。
曹仁看出了問題,他向曹操建議:「圍城的時候最好讓城裡的人看到他們還有活路,現在要是讓他們感覺只有死路一條,他們必然會奮力抵抗,加上敵人城固而糧多,我們硬攻必然會有很大傷亡。位於堅固的城池下,去攻打必死的敵人,不是上策。」
曹操接受了曹仁的建議,城內的敵兵很快投降了,曹仁因此被封為都亭侯。曹仁的建議裡應該還有更具體的攻城方案,不然城裡的敵兵也不會輕易投降,這個方案是什麼沒有記載,應該是更改之前的命令,給城裡的人留出一條活路,誘使敵兵投降吧。
高幹被殺,壺關攻破,活躍在并州地區的黑山軍首領張燕此前已歸順了曹操,被封了侯爵,在這一帶有傳統勢力的南匈奴也表示不願為敵,并州刺史部的問題也就解決了。
并州刺史部一向獨立性很強,就是緣於黑山軍、南匈奴這些因素,但它的戰略位置又很重要,不說庇護著中原的北部邊防,就說河洛與關中的聯絡,它也佔著中間要害的一段,所以并州刺史部的問題如果不能徹底解決,也讓人不踏實。
并州刺史部最北部還有自西向東一字排開的四個郡,分別是朔方郡、五原郡、雲中郡和雁門郡,儘管地盤很廣大,但都不用發兵,基本上傳檄可定。
并州刺史部的南面是隸屬於司隸校尉部的河東郡、弘農郡,這裡一直處在動亂之中,能不能把這些地方也治理好,影響到并州刺史部的穩定。就在高幹起兵的同時,河東郡的張晟聚眾上萬人響應高幹,弘農郡的張琰也加入進來,他們活躍於崤關、澠池一帶,勢力逐漸壯大。
河東郡、弘農郡是通往關中的必由之路,如果這裡不在控制之中,關中就成為孤島,這讓曹操很頭痛。曹操任命的河東郡太守名叫王邑,這個人或者能力不怎麼樣,或者不太可靠,他的上司司隸校尉鍾繇想奏免他。
但王邑在河東郡有一定勢力,郡政府屬官衛固和地方駐軍負責人(中郎將)范先是他的盟友,當時王邑的調任詔書已經下達,但衛固和范先趁機生事,他們趕到長安面見鍾繇,以民意為借口要求王邑留任。當時高幹還沒有死,衛固、范先表面上為民請願,實際上是想把局面弄亂,好與高幹暗中相通。
河東郡的嚴峻形勢讓曹操憂心,他寫信給在許縣的荀彧:「關西諸將表面臣服而心懷貳心,張晟作亂於殽、澠,南面與劉表相通,衛固等人又響應他,眼看將釀成大亂。河東郡是天下要地,請先生為我舉薦一個像蕭何、寇恂那樣的賢才去鎮守。」
荀彧接到曹操的信,很快回復:「西平郡太守杜畿勇足以當難,智足以應變,正是明公需要的那個人。」
曹操於是任命杜畿為河東郡太守,杜畿字伯侯,關中人,是西漢名臣杜延的後代,20多歲時在家鄉當過縣長,後避亂於荊州。建安初年曹操在許縣招攬人才,經荀彧推薦到司空府任職,後外派為護羌校尉,兼任涼州刺史部西平郡太守。
杜畿走馬上任時壺關之戰還沒有結束,這時能抽調出來隨杜畿進入河東郡的人馬有限,杜畿索性只帶少數隨從前往。衛固等人知道後,派出幾千人佔領了黃河上的重要渡口陝津,這個地方位於今河南省三門峽市附近。
杜畿無法渡河,曹操於是派夏侯惇率部前來增援。但是,大軍開到還需要一定時間,杜畿認為河東郡百姓並非想作亂,而衛固等人也沒到公開違抗曹操命令的地步,應該先穩住他們。杜畿於是繞道黃河上的另一個渡口豆津,這個地方在今山西省芮城縣東南,他從那裡過了河,來見叛軍首領。對於杜畿的到來衛固和范先產生了分歧,范先想殺掉杜畿,為了給杜畿一個下馬威,范先在城門外綁了幾十個原郡政府的屬官,從主簿開始殺起,一口氣殺了30多個,但杜畿居然神態自若。
杜畿超強的心理素質鎮住了本來就不想殺害他的衛固,衛固是個不想把什麼事都做絕的人,他認為對杜畿殺之無益,徒有惡名,反正他人少勢孤,難有作為,於是表面上仍然尊杜畿為太守。
杜畿耐住性子與衛固、范先等人周旋,並悄悄發展自己的勢力,分化瓦解敵人,後來他抓住機會,與衛固、范先決裂,雙方激戰於張辟。正在此時壺關戰役結束了,曹操派出的大軍也開到了,殺了衛固、范先以及張晟等人,平定了河東郡。
官渡之戰結束後,一直到建安十一年(206),曹操用了幾乎六年的時間,經過連續作戰,把北方四州中的冀州、青州、并州全部納入勢力範圍,幽州刺史部除了北面的一部分在公孫度手中,其他大部分也都在曹操控制之下。
至此,基本完成了北方的統一。
對曹操來說,這是手下將士們奮死拚殺的結果。
自從己吾起兵以來,幾乎每一天都有戰鬥,每一仗都有成百上千的人流血犧牲,勝利來之不易,功勞應該歸大家。所以,在北方大勢初定後,曹操下令對死去將士們的家屬、遺孤給予撫恤,對有功的將士們給予封賞。
曹操開始起兵時的身份是奮武將軍,勉強算個雜牌軍的軍長,當時的骨幹只有曹仁、曹洪以及夏侯淵、夏侯惇等幾個,他們的身份是奮武將軍屬下的司馬或別部司馬,類似於團長。後來,隨著軍隊規模越來越大,加入的將領越來越多,曹軍的組織體系也發生了很大變化。
到官渡之戰時,夏侯惇他們已經升為軍長一級的各種名號將軍,或者師長一級的中郎將、旅長一級校尉。而曹操手下的一批「異姓將軍」,進步更快。官渡之戰前後,於禁等人已經晉陞為將軍、偏將或裨將了,其中於禁、樂進是偏將,還有捕虜將軍李典、振威將軍程昱等人,張遼、張郃、徐晃也都是裨將或偏將,許褚的軍職稍低些,是校尉這一級。
這說明,在曹軍中曹氏和夏侯氏兄弟的地位並不是最高的,起碼現在仍是這樣,他們晉陞的速度並不比其他異姓將領更快,甚至還稍稍有些落後。曹操的用人方略歷來受到後人的推崇,其中一條就是賞罰分明,平時建立有嚴格的軍功考核、登記制度,該獎的時候必獎,不該獎的時候決不濫獎,避免了獎懲和職務晉陞的隨意性。
建安十一年(206),曹操從壺關回師後,立即著手考評各位將領的功勞,考評的最後結果,於禁、樂進和張遼三個人的功勞最大,曹操於是上表獻帝,對他們三個人予以表彰,提拔他們全部升任軍長,其中於禁為虎威將軍,樂進為折衝將軍,張遼為蕩寇將軍。
除了武將,謀士們也功不可沒,功勞最大的自然是荀彧。早在建安八年(203),曹操就根據荀彧前後所立的功勞,上書獻帝表荀彧為萬歲亭侯,但荀彧堅決推辭,他是朝廷的尚書令,有關文件需要從他這裡傳遞,荀彧自作決定將其扣下不發。曹操又反覆勸說,最後荀彧才肯接受。
到了建安十二年(207)2月,曹操又在鄴縣表奏獻帝,大封功臣20多人,全部封為列侯,其餘的也都評出等級予以封賞,這次受封的20多個人名單不詳,只知道曹純的高陵亭侯、張遼的都亭侯等都是這次受封的,想必其他戰功顯赫的武將們也都封了侯。除了武將,謀士裡至少郭嘉、荀攸在這次也得到了封侯,郭嘉受封的是洧陽亭侯。荀彧當初被封為萬歲亭侯時食邑是1000戶,此次又加封1000戶,共計2000戶,在亭侯裡算是很多的了。
曹操甚至想讓荀彧擔任三公,荀彧不好當面拒絕領導的美意,就讓荀攸出面替自己謝絕,前後達十多次,曹操最終才放棄了這個想法。