少帝邵宁元年(公元189年)九月,董卓废少帝刘辩,改立刘协为汉献帝,自任太尉兼前将军,十月一又自任相国,总揽朝纲为一身,汉室已成董卓之汉室。
袁绍、袁术、曹操等人因反对董卓,于是逃出京师,联络各地方诸侯,准备起兵讨伐董卓。
初平元年(190年),袁绍终于在勃海起兵,他与堂弟后将军袁术、冀州牧韩馥、豫州刺史孔佃、兖州刺史刘岱、陈留太守张邈、广陵太守张超、河内太守王匡、山阳太守袁遣、东郡太守桥瑁、济北相鲍信等人同时起兵,部众有数万人,以讨伐董卓为名。
袁绍与王匡驻守河内,孔佃驻守颖川,韩馥驻守邺县,其他军队都驻守在酸枣,并相约结盟,名义上推袁绍为盟主。袁绍自称车骑将军,领司隶校尉。
董卓得知袁绍在山东起兵,就把袁绍的叔父袁隗以及在京师的袁氏宗族全部给杀了。
董卓接着派大鸿胪韩融、少府阴循、执金吾胡母班、将作大匠吴循、越骑校尉王瓖,晓谕劝解袁绍等各路军队。
袁绍指派王匡杀掉了胡母班、王瓖、吴循等人,袁术捕杀了阴循,只有韩融因为德高望重免于一死。
遣时,豪杰大多归附袁绍,而且因他一家遭难受感动,人人想着为他报仇,所以州郡蜂拥而起的部队,没有不打袁氏旗号的。
韩馥见人心归附袁绍,忌恨袁绍得到众人拥护,害怕他用来对付自己,经常派从事在袁绍的门口把守,不让他发兵。
公元192年(初平三年),袁绍在界桥之战中击败公孙瓒。公孙瓒败走勃海还蓟后,虽有反击幽州牧刘虞的胜利,被朝廷封为易侯,
但受袁绍及刘虞旧将的合击,屡战屡败,公元195年(兴平二年)退至易,屯田稍得自支。一年之后,击破袁将麴义。
易地南临易水,公孙瓒令挖壕沟十道环绕,堆积山丘高各五六丈,上筑营驻兵。中心山丘高达十丈,其上建楼,公孙瓒自居,置铁门,呈送文书系绳引上。
城内储谷300万斛。公孙瓒欲长期固守再相机出击。袁绍致书劝和,公孙瓒置之不理。袁绍又遣将进攻,连年不能克。
就写信给公孙瓒,想与他解开过去的仇怨,互相联合。公孙瓒不予理睬,反而增强防备,他对长史、太原人关靖说:“如今四方龙争虎斗,显然没有人能连年坐在我的城下相守,袁绍能对我怎么样!”
袁绍于是大举增兵,向公孙瓒进攻。在此之前,公孙瓒据守各地的将领中,有人被敌军围困,公孙瓒不肯救援,他说如果救援他会使其他将领以后依赖救援,不肯努力奋战。
公元198年(建安三年),袁绍倾力进攻。公孙瓒派到南境营寨防守的将领,自知坚守不住,又知必定不会有人援救,于是有的投降,有的溃散。
袁绍大军长驱直入,到达易京城门。公孙瓒派儿子公孙续向黑山军的将领们求援,并准备自己率领精锐骑兵出城,奔往西山,带领黑山军反攻冀州,切断袁绍的退路。
关靖劝阻公孙瓒说:“如今将军部下将士无不怀着离散之心,所以还能坚守,只是因为顾念全家老少都在这里,而且依赖将军在此主持大局。
继续坚守,拖延时日,或许能使袁绍知难自退。如果将军舍弃他们,率兵出城,后方无人作主,易京的陷落,便指日可待。”
公孙瓒于是放弃出城打算。袁绍大军逐渐进逼,公孙瓒部众日益窘迫。
公元199年(建安四年)春天,黑山军首领张燕与公孙续率兵十万,分三路援救公孙瓒,张燕的援军还未到,公孙瓒秘密派使者送信给公孙续,让他率五千铁骑到北方低洼地区埋伏,点火作为信号,公孙瓒打算自己出城夹击袁绍围城部队。
袁绍的巡逻兵得到这封书信,袁绍就按期举火,公孙瓒以为援军已到,就率军出战。袁绍的伏兵发动进攻,公孙瓒大败,回城继续坚守。
袁绍围城部队挖掘地道,挖到公孙瓒部队固守的城楼下,用木柱撑住,估计已挖到城楼的一半,便纵火烧毁木柱,城楼就倒塌了。袁绍用这种方法逐渐攻到公孙瓒所住的中京。
公孙瓒自料必定不能幸免,就绞死自己的姊妹、妻子儿女,然后放火自焚。袁绍催促士兵登上高台,斩公孙瓒。田楷战死。
关靖叹息说:“以前,如果不是我阻止将军自己出城,未必没有希望。我听说君子使别人陷入危难时,自己一定与他分担患难,怎么能自己独自逃生呢!”就骑马冲入袁绍军中而死。公孙续被匈奴屠各部杀死。
袁绍拥有冀、青、并州及幽州大部,成为当时中国北方最强的割据势力,并开始了大举南进的准备。
建安四年(199年)六月,袁绍挑选精兵十万,战马万匹,企图南下进攻许都,官渡之战拉开了序幕。袁曹两家的决战,一触即发。
建安五年(200年)正月,车骑将军董承、偏将军王服、越骑校尉种辑接受了汉