公元191年冬,袁术表奏孙坚为豫州刺史,屯兵阳城。袁绍趁孙坚出兵攻打董卓的机会,袭取了阳城。袁术和公孙瓒是盟友,公孙瓒的弟弟公孙越带着一千骑兵在袁术身边效力。袁术就命他协助孙坚夺回阳城,结果公孙越在作战中被流箭射中身亡。
正在青州镇压黄巾军的公孙瓒早就觊觎富庶的冀州,闻知弟弟的死讯后,以此为借口准备进攻袁绍。袁绍大为恐惧,任命公孙瓒的堂弟公孙范为勃海太守,以此示好。但公孙范一到勃海,却立即出兵帮助堂兄打败了青州、徐州的黄巾军。公孙瓒声势大振,冀州诸城望风响应。
公孙瓒任命部下严纲为冀州牧,田楷为青州牧,单经为兖州牧,并配置郡守县令。同时,上书朝廷,列举袁绍“为臣不忠,弃君而逃;为子不孝,害死亲族”等十大罪状,深入冀州兴师问罪,屯兵界桥(今河北威县)。袁绍为保住冀州,亲自领兵迎战公孙瓒,两军在界桥南二十里处大战。
当时幽州突骑,冀州强弩,号为天下精兵。公孙瓒以两万步兵排成方阵,两翼各布置五千幽州突骑,亲卫白马义从作为核心,分两校(一校八百人),左射右,右射左,旌旗铠甲,光照天地。袁绍则命麹义率八百精兵携带盾牌为先登,以冀州强弩千人掩护,自己带着数万步兵在后结阵。
公孙瓒见袁绍前锋兵少,便令骑兵直接冲击敌阵。麹义出身凉州,熟悉边地羌人骑兵的战法。他让士兵伏身藏在大盾后,待敌骑冲到距离几十步的地方,一齐跃起,大喊着向前突击,身后千弩齐发。幽州突骑中者必倒,陷入一片混乱。麴义军越战越勇,阵斩公孙瓒军大将严纲等千余人,乘胜追到界桥。公孙瓒聚拢溃军,企图守住界桥,但再次被麹义击败。麹义一路追到公孙瓒的大营,攻下主帐前牙门,营中敌军全部逃散。
袁绍在后方十余里处听说公孙瓒军已败,命主力追击敌人,自己下马卸鞍,稍事休息。这时恰好敌军二千余骑逃经此处,围住袁绍,箭如雨下。袁绍身边护卫只有数十强弩兵、一百多大戟士。形势危急,别驾田丰拉着袁绍,要他躲进一堵墙后。袁绍猛地将头盔掼在地上,大喊:“大丈夫应当向前战死,怎么能躲在墙后!”他指挥弩手应战,杀伤了不少骑兵,公孙瓒的部队没认出袁绍,并未全力攻击。不久,麹义领兵来迎袁绍,公孙瓒军随即撤走。
界桥之战,袁绍成功阻止了势头正盛的公孙瓒进入冀州,二者实力对比渐渐形成均势。次年,双方又爆发了龙凑之战、巨马水之战,最终以互相耗尽兵粮及天子遣使和解而告终。