随即加封沮授爲奮威将軍,使他監護諸将。
袁紹又用田豐爲别駕、審配爲治中,這兩人比較正直,但在韓馥部下卻郁郁不得志。此外,袁紹還用許攸、逢紀、荀谌等人爲謀士。
冀州北面有公孫瓒,南面有袁術,這是袁紹的兩個勁敵。袁術雖然是袁紹的弟弟,但兄弟二人向來不和。
初平二年(191年)冬,袁術任命孫堅爲豫州刺史,屯兵陽城。在孫堅出兵攻打董卓的時候,袁紹借機會任命周昂爲豫州刺史,派兵襲取了陽城。
袁術派遣公孫瓒的弟弟公孫越協助孫堅回救陽城,公孫越在作戰中被流矢射中身亡。當時,正在青州鎮壓黃巾軍的公孫瓒怒不可遏地說:“我弟弟的死是袁紹惹出來的。”
于是舉兵攻打袁紹,公孫瓒攻勢淩厲,威震河北,一時間,冀州郡縣紛紛望風歸降。袁紹大驚,爲了取悅公孫瓒,緩和局勢,他拔擢公孫瓒的從弟公孫範爲勃海太守,但公孫範一到勃海,卻立即倒戈。
袁紹親自領兵迎戰公孫瓒,兩軍在界橋南二十裏處交鋒。公孫瓒以三萬步兵,排列成方陣,兩翼各配備騎兵五千多人。
袁紹令麹義率八百精兵爲先鋒,以強弩千張爲掩護,他統領步兵數萬在後。公孫瓒見袁紹兵少,下令騎兵發起沖鋒,踐踏敵陣。
麹義的士兵鎮靜地俯伏在盾牌下,待公孫瓒的騎兵沖到隻距離幾十步的地方,一齊跳躍而起,砍殺過去;與此同時,千張強弩齊發,向公孫瓒的騎兵射去。
公孫瓒的軍隊遭到意想不到的打擊,全軍陷入一片混亂,騎兵、步兵都争相逃命。麴義的軍隊則越戰越勇,臨陣斬殺了公孫瓒所署冀州刺史嚴綱,獲甲首千餘人,又乘勝追到界橋。
公孫瓒企圖守住界橋,但再次被打敗了,麹義一直追擊到公孫瓒的駐營地。袁紹命令部隊追擊敵人,自己緩緩而進,随身隻帶着強弩數十張,持戟衛士百多人。
在距離界橋十餘裏處,聽說前方已經獲勝,就下馬卸鞍,稍事休息。這時公孫瓒部逃散的騎兵二千多突然出現,重重圍住了袁紹,箭如雨下。
别駕田豐扶着袁紹,要他退入一堵矮牆裏,袁紹猛地将頭盔掼在地上,說:
“大丈夫甯可沖上前戰死,躲在牆後,難道就能活命嗎!”
他指揮強弩手應戰,殺傷了公孫瓒的不少騎兵,公孫瓒的部隊沒有認出袁紹,也漸漸後退。稍頃,麹義領兵來迎袁紹,公孫瓒的騎兵才撤走了。
要是公孫瓒的騎兵知道這裏有袁紹,或者看到袁紹的旗子什麽的标志,肯定悍不畏死,不計犧牲的要殺死或者活捉袁紹,這樣曆史也将因此而改變了。
當然,萬事沒有如果,有時候那麽一點點運氣的好壞差異,卻是能夠徹底改變個人命運軌迹的。
再說公孫瓒兵敗後,黑山軍首領張燕派部将杜長等爲公孫瓒助陣,也被袁紹擊敗,黑山軍與袁氏開始結怨。
初平三年(192年),袁術與袁紹開戰,袁術向公孫瓒求援,公孫瓒令劉備屯高唐,單經屯平原,同時聯合陶謙,用來威逼袁紹,袁紹與曹操合擊,大破袁術、公孫瓒以及陶謙的聯軍。
從初平三年至興平二年(192年—195年),中原局勢發生了一系列的變化。在長安,司徒王允和中郎将呂布等密謀殺死了董卓,使萬民額手稱慶。
但王允不能妥善處理董卓的部屬,引起董卓部将李傕、郭汜舉兵叛亂。結果王允被殺,呂布東逃。後來,李傕、郭汜發生火并,互相屠殺,而漢獻帝作爲一尊偶像,被這些軍閥争來搶去。
在兖州,曹操異軍突起。原兖州刺史劉岱死後,兖州地方勢力推舉曹操接任,他采取武裝鎮壓和誘降的兩手,迫使三十萬青州黃巾軍投降。
他又與袁紹合作,連破袁術,把袁術擠到淮南。不過曹操,也差點一蹶不振:
在他東征徐州刺史陶謙時,地方勢力的代表張邈、陳宮背叛他,迎呂布入兖州。曹操經過艱苦的鬥争,才重新奪回了兖州。
可以說,兖州之戰,可謂同樣也差點改變曆史,如果呂布僥幸勝了,也沒有後來曹操什麽事了,更沒有魏晉的事了!
在幽州,公孫瓒又派兵到龍湊攻打袁紹,結果再次被袁紹打敗,之後就退守幽州,再也不敢輕舉妄動了。
初平四年(193年),太仆趙岐奉命勸和,袁、公孫雙方宣告休戰。三月,袁紹南下薄落津。這時,魏郡發生兵變,造反的兵士和黑山軍會合後,占領了邺城。
當時袁紹部隊正在全軍開慶功宴,聽到這個消息,袁紹的部下們特别是家屬在邺城的,要麽臉色大變,要麽放聲大哭,唯獨袁紹容貌自若,不改平時的風度。
如果隻是袁紹的鎮定,或許曆史将要改變,袁紹或許離敗亡不遠,至少也會傷筋動骨,然而一個小人物,卻讓袁紹“起死回生”:
整個邺中有十多支黑山軍的部隊,但黑山軍中有一個叛徒陶升,他入邺城後把袁紹和州内官吏家屬保護起來,并把他們送往斥丘。袁紹迸屯斥丘,任陶升爲建義中郎将。
六月,袁紹大舉進剿黑山、黃巾軍,先發兵進入朝歌鹿腸山蒼岩谷谷口讨伐于毒,圍攻五天,斬殺于毒及其部衆一萬多人。
接着,沿着鹿腸山向北進攻左髭丈八等,将他們全部剿滅。又接連擊滅劉石、青牛角、黃龍、左校、郭大賢、李大目、于氐根等多支黑山、黃巾部隊,屠其屯壁,大肆殺戮,斬首數萬級。
之後聯手呂布,與張燕、四營屠各、雁門烏桓在常山展開大戰,連續打了十幾天,雖然張燕軍多被殺傷,但袁紹軍也很疲憊,于是雙方各自退兵。
東郡太守臧洪因怨恨袁紹不出兵救張超,舉東郡之兵與之對抗,袁紹興兵圍城一年,破東郡,勸降臧洪不得,乃殺之。