袁绍在临死以前,把他的冀青幽并四州地盘,分别传给三个儿子一个外甥。袁谭是大儿子,得到青州;袁熙,二儿子,得到幽州;袁尚,小儿子,得到冀州。高幹,是外甥,得到并州。
曹操听说袁绍已死,就进兵来打。袁谭守住黎阳的渡口,袁尚跑来助战。曹操越打越凶,袁谭、袁尚守得越紧。这是建安七年秋天与冬天的事。
刘备在南方,由新野进展到叶县,想夺许昌。曹操派了夏侯惇、于禁抵挡,刘备诈败,夏侯惇和于禁就穷追,追到一段狭路上,刘备放火烧两旁的草木,夏侯惇和于禁吃了一个大亏。但是刘备也没有力量再来。
到了建安八年春天,曹操打下了黎阳,进兵至邺县城下。邺县就是今天的河南临漳,是当时冀州的首县,也就是袁尚的都城。曹操一时打不下邺县来,到了夏天五月,就听从郭嘉的话,留一个将军守黎阳,自己退兵回许昌,又进兵到西平,装着要打刘表的样子,让袁谭、袁尚兄弟二人松一口气。郭嘉告诉曹操,这两位姓袁的弟兄久已互相水火,一有机会便要阋墙,重演父亲袁绍与叔父袁术的故事。
在袁绍的部下之中,原有两个派系,一个捧大公子袁谭,一个捧三公子袁尚。郭图与辛评属于前者,审配属于后者。曹操退兵的时候,袁谭向袁尚要铠甲,以便追击曹兵,袁尚不给,袁谭就攻打邺县,两兄弟战于城门之下,果然如郭嘉所料。
袁谭打不过袁尚。退到青州的南皮县。到秋天八月,袁尚大举向袁谭进攻,抢了南皮,袁谭退到平原,一面死守,一面派了辛评的弟弟辛毗,到曹操那里去递降表,请求救兵。
曹操问辛毗:“你的上司是真投降,还是假投降?”辛毗说:“你别问他是真投降或假投降,他与袁尚不和总是真的,这就于你有利,为什么不派兵帮忙,收渔翁之利呢?”听辛毗口气,倒不是替袁谭投降,而是替自己投降,后来他居然成为魏国的要人。
曹操十分赞许辛毗的高论,其实他早就胸有成竹了。他明知袁谭不是真正投降,故意和袁谭攀亲,要袁谭的女儿做媳妇。然后,就进兵黎阳,为袁谭而声讨袁尚。
他的大兵一到黎阳,袁尚慌忙丢了平原,回保邺县,曹操看见袁尚回来,故意好整以暇,慢慢地掘一条运河,把洪水通到白沟,说要运粮。袁尚真是糊涂,以为局面不够紧张,居然想抽一个空,在建安八年二月再到平原去打袁谭。他一走,曹操就加紧打邺县,把邺县围得紧紧的。围到六月,城里的人死了一半。守邺县的正是审配,也亏他能干,守得那么久。
袁尚只好又从平原带兵赶回来,与城中举火为应,准备在北门外两军会师。审配开了城门出来,被曹操打回去;袁尚的军队扎在城外,也被曹操围了。袁尚求和,曹操不肯,袁尚的若干大将又临阵缴械,袁尚只好只身逃走。丢了全部的印绶盔甲与锱重。这些东西,曹操叫人拿给守城的人看,城内军心立刻瓦解。虽则审配还想死守,他自己的侄子审荣,却以东门校尉的资格,半夜开城,引进曹兵,袁绍留下来的冀州就这样子完了。
袁尚想逃到并州去,高幹不欢迎。高幹正在派人向曹操投降,后来曹操叫他仍旧做并州刺史。
袁尚就逃到幽州的故安县,依附二公子袁熙。袁谭很得意,着手收编袁尚的部队,不料曹操忽然说他背约。把他的女儿送还,跟着就派兵打。在当年冬天,曹操就打下平原,袁谭退守南皮,到了建安十年正月,袁谭出了南皮想逃,被曹操的兵捉住杀了。袁绍留下来的青州,于是也入于曹操之手。
二公子袁熙在幽州,等不到曹操来进攻,已经被部下触焦驱逐。他奔到柳城(辽宁县附近),依附辽西乌桓的单于蹋顿。于是,袁绍所留下的幽州,也完了事。
曹操一鼓作气,去打乌桓。高幹听到消息,忽然又造起反来(也许他并未造反,是曹操硬诬赖他),曹操就派了乐进、李典,攻打壶关。又派杜畿做河东太守,在南边堵住高幹的去路。
乐进、李典打不进壶关去,累得曹操自己出马,从建安十一年正月打到三月,打了进去,高幹溜出并州向北跑,想跑到匈奴那里去求救,走到上洛郡,就被上洛的都尉捉住杀了。于是袁绍所留下的并州又稳稳当当地入于曹操之手。