公孙瓒常与身边数十个善于骑射的人都骑白马,相互间为左右翼。
当时,丘力居寇略青、徐、幽、冀,四州被其害,公孙瓒无法抵御。
朝中认为,宗正刘虞曾任幽州刺史,对当地士民有恩信,又为游牧民族所附,如果让他去镇抚,幽州可以不劳而定。
于是,朝廷派刘虞担任幽州牧。
刘虞到任后,罢省屯兵,广施恩信,派遣使臣到游牧民族中晓以利害,告诉乌桓峭王等朝廷圣德仁厚,允许叛军投降,给予出路。
刘虞又悬购张举、张纯的人头。
丘力居等听说刘虞到了,纷纷派遣使者前来沟通归附之事。
张纯舍弃妻小,与张举逃出塞外,其他余众或降或散。
公孙瓒担心刘虞立功,暗中派人在途中暗杀这些使者。
游牧民族明白此事后,便绕道到刘虞处。刘虞上报朝廷撤掉驻防军队,只留下公孙瓒统万余步兵、骑兵屯驻右北平。
中平六年(189年)三月,逃入鲜卑的张纯被门客王政杀死,王政把张纯的级送给刘虞,因功被封为列侯。
刘虞也因安抚游牧民族有功而被授予太尉之职,封为容丘侯。董卓入洛阳,又遣使拜刘虞为大司马,封襄贲侯。
最初,公孙瓒和刘虞一起讨伐乌丸的时候,公孙瓒受刘虞节度。但因为公孙瓒自持兵力强大,便放纵自己的部队,多次掠夺百姓,而刘虞则对百姓十分仁爱。
因此,两人关系逐渐恶化。
初平二年(191年),刘虞遣田畴等人去长安拜见汉献帝刘协,刘协想东归旧京,趁机派刘虞之子刘和逃出长安,偷偷出武关去找刘虞,让刘虞率兵前来相迎。
刘和途经袁术的驻地南阳,将此事告知了袁术。
袁术扣留了刘和,让刘和给刘虞写信,答应等刘虞率兵前来为袁术后援,一起赴长安。
公孙瓒知道袁术会叛变而制止刘虞,刘虞不听,派数千骑兵去南阳,结果袁术并未派他们出征。
公孙瓒担心自己与袁术结怨,就派从弟公孙越率千余骑兵到袁术处相结好,而暗地又让袁术扣留刘和并夺占刘和兵马。
因此,公孙瓒与刘虞的矛盾越来越深。
后来刘和逃出南阳北上,又被袁绍扣留。
袁绍为夺取冀州,密请公孙瓒攻击冀州牧韩馥。
公孙瓒于是攻打安平,击破韩馥,之后引兵入冀州,打着讨伐董卓的旗号袭击韩馥,韩馥心不自安。
袁绍趁机派荀谌等人劝说韩馥把冀州让给自己。
初平二年(191年),青州黄巾军攻打河北南皮,聚众三十万,欲与黑山军会合,公孙瓒率步骑两万人在东光南大破青州黄巾,斩三万余。
青州黄巾军弃辎重,奔走渡河。
公孙瓒等他们过到一半时出击,再次大败黄巾军,死者数万,俘虏七万余人,车甲财物无数,于是,公孙瓒威名大震。
战后,公孙瓒被拜为奋武将军,封蓟侯。
当时,孙坚奉袁术之命屯阳城,袁绍派周昂攻打阳城,袁术遣公孙越助孙坚攻周昂,结果公孙越被流矢射中而死。
公孙瓒得知后怒道:“我弟之死,祸起于袁绍。”
于是,出兵驻扎在河北磐河,准备报复袁绍。
公孙瓒细数袁绍十条罪状,上表朝廷。
公孙瓒举兵攻击冀州,屯兵广宗。
袁绍非常惊恐,把渤海郡太守印交给了公孙瓒堂弟公孙范,派他到郡里,打算以此与公孙瓒结援。
公孙范于是背叛袁绍,以渤海兵力协助公孙瓒;公孙瓒自破青、徐黄巾军后,兵势日益强盛,进驻河北威县的界桥,任命严纲为冀州刺史,田楷为青州刺史,单经为兖州刺史,并设置郡守、县令,冀州长吏都望风响应。
初平二年(191年),袁绍屯军河北枣强县,与公孙瓒战于界桥南二十里处。
公孙瓒以两万步兵,排列成方阵,左、右两翼各自配备骑兵五千多人。
袁绍命其将麴义领精兵八百在前,布强弩千张于两翼。
公孙瓒轻视袁绍兵少,纵骑兵出战。麴义命士兵伏于楯下不动,等公孙瓒军到十步前,一时同,公孙瓒大败。
袁绍军阵斩严纲。麴义追公孙瓒到界桥,公孙瓒率兵还击,再次被打败。
袁绍派部将崔巨业率兵攻打公孙瓒的故安县,不下,在引军南归时,在巨马水被公孙瓒大军追上,大败,七八千人阵亡。
公孙瓒趁胜攻克郡县,到达平原,派自己所设的青州刺史田楷占据齐国。
田楷与袁绍在青州交战长达两年,双方粮食耗尽,士卒疲困,于是交替抄掠百姓,野外连青草都没有了。