汉献帝刘协想东归洛阳,派刘虞之子刘和逃出长安,偷偷出武关去找刘虞,让刘虞率兵前来相迎。刘和途经袁术驻地,将此事告知了袁术。袁术扣留了刘和,让刘和给刘虞写信,答应等刘虞率兵前来为袁术后援,一起赴长安。公孙瓒知道袁术会叛变而制止刘虞,刘虞不听。公孙瓒担心袁术知道后恨他,派他堂弟公孙越率千余骑兵到袁术处相结好,而暗地又让袁术扣留刘和并夺占刘和兵马。因此,公孙瓒与刘虞的矛盾越来越深。
袁术遣公孙越帮助孙坚攻周昂,公孙越被流矢射中而死,公孙瓒怒道:“我弟之死,祸起于袁绍。”于是出兵驻扎在磐河(今河北境内)准备报复袁绍。袁绍非常惊恐,把渤海郡太守印交给了公孙瓒堂弟公孙范,派他到南皮,想以此与公孙瓒结援。公孙范于是背叛袁绍,以渤海兵力协助公孙瓒,攻破青州、徐州黄巾军,兵势日益强盛,进驻界桥(故址在今河北威县境内)。公孙瓒自己任命严纲为冀州州牧,田楷为青州州牧,单经为兖州(今山东金乡县西北)州牧,并配置了郡守县令。
公元192年(汉献帝初平三年),袁绍屯军广川县(今河北枣强县东北),与公孙瓒战于界桥南二十里处。公孙瓒有精兵三万。袁绍命其将麴义领精兵八百在前,布强弩千张于两翼。公孙瓒轻视袁绍兵少,纵骑兵出战。麴义命士兵伏于楯下不动,等公孙瓒军到十步前,一时同发,公孙瓒大败。袁绍军生擒了严纲并斩其首。麴义追公孙瓒到界桥,公孙瓒率兵还击,再次被打败。于是公孙瓒逃到蓟县(今北京大兴区),在县城东南另筑小城自守,与刘虞临近,渐渐结下仇恨。袁绍派部将崔巨业率兵攻打公孙瓒的故安,不下,在引军南归时,在巨马水被公孙瓒大军追上,大败,七八千人阵亡。公孙瓒想乘胜追击,却又在龙凑被袁绍打败,双方战成均势。
公元193年(汉献帝初平四年),刘虞担心公孙瓒反叛,于是率兵十万攻打公孙瓒。当时,公孙瓒的部曲放散在外,仓卒欲从东城逃走,刘虞的士兵不习战,又下军令不准骚扰百姓,久攻不下。公孙瓒于是招募精兵数百人,顺着风势放火,趁势杀入刘虞兵营,刘虞大败。刘虞与他的部下往北逃到居庸县(今北京延庆东)。公孙瓒三天就攻破了居庸城,活捉刘虞及其妻子儿女回到蓟县。此时董卓已死,献帝派使者段训给刘虞增加封地,令其督统六州,升迁公孙瓒为前将军,封易侯。公孙瓒诬陷刘虞与袁绍谋取称帝,胁迫段训斩刘虞及其妻子儿女于蓟市。公孙瓒将刘虞的首级送到京师,被刘虞的旧部下尾敦在路上劫走并安葬。公孙瓒杀了刘虞之后,得到了整个幽州,日益骄矜,不恤百姓,记过善忘,睚眦必报。
公元195年(汉献帝兴平二年),刘虞的从事渔阳鲜于辅、齐周、骑督尉鲜于银等率幽州兵马想为刘虞报仇,因燕国(今北京大兴)阎柔素有恩义,他们便推举阎柔为乌丸司马。阎柔招集鲜卑、乌丸等兵马,共得汉兵、胡兵数万人,与公孙瓒所置渔阳太守邹丹战于潞河(今朝白河)之北,大败公孙瓒军,斩杀邹丹。乌桓峭王也率其部落的人及鲜卑骑兵七千余骑,随鲜于辅迎接刘虞之子刘和与袁绍将麴义,合兵共十万攻打公孙瓒,大败公孙瓒于鲍丘,斩首二万余。于是,代郡、广阳、上谷、右北平各杀公孙瓒所置长官,与鲜于辅、刘和兵联合,公孙瓒屡战屡败,于是逃回易京(故址在今河北雄县西北)坚守,开置屯田。两军相持一年有余,麴义粮尽退兵,公孙瓒乘势出击,击败麴义,尽得其车重。
公元198年(汉献帝建安三年),袁绍传书给公孙瓒,想跟他释和,公孙瓒没有答复,反而增强守备。袁绍于是大兴兵攻打公孙瓒。先是公孙瓒一别将被围,公孙瓒不肯相救,说:“救一人,那以后众人都会只等救兵而不肯力战。”等到袁绍来攻时,公孙瓒的界桥别营自度不能自救,而公孙瓒必不肯相救,众人或降或逃。
袁绍直接攻到了城门前,公孙瓒派他的儿子公孙续向黑山(今河南浚县西北)黄巾军求救,又想亲自率兵冲出重围,占据西南山,仰仗黑山军,切断袁绍军的后路。长吏关靖劝谏他说:“现在您的将士都各怀叛离之心,已无力再战,他们之所以能固守是顾惜他们的故乡老少,而把将军您当成主心骨,将军如能持久坚守,袁绍自然会退兵,四方军队一定又可以会合了。若将军现在弃易京而走,军队会失去后镇,易京覆灭指日可待。将军失去根基,流落荒野,怎么成就事业呢?”公孙瓒于是决定不离开易京,等待其子搬来救兵,内外夹攻袁绍。
公元199年(汉献帝建安四年)三月,黑山帅张燕与公孙续率兵十万,分三路相救公孙瓒。援兵还没到,公孙瓒秘密派人送信给公孙续,让他率五千骑兵于北隰之中,举火把为应,公孙瓒就从城内出战。袁绍劫得了这封信,将计就计,举起火把。公孙瓒以为救兵到了,率兵出击。袁绍设伏兵袭击公孙瓒,公孙瓒大败,又回到城内坚守。袁绍于是掘地道到城楼下,毁坏其望楼,渐渐到达中央的土丘。公孙瓒自料必败无疑,先杀掉自己的妻子、儿女,然后引火。
陈寿曾经评价公孙瓒道:“瓒遂骄矜,记过忘善,多所贼害”;“公孙瓒保京,坐待夷灭。”
而此人如果用的好的话也算是一员良将,经过反复思考,李忠还是决定接纳公孙瓒,毕竟他李忠不是刘虞,他相信他自己有信心能够降服他。