张辽于半途屯军整兵,半月之后来到平原城下,于城西五里扎寨。许攸见张辽初到,半夜又使文丑、张合率六万兵马球劫营。两将入得营寨,放火烧毁缁重粮草无数。张辽大怒,使诸将急攻平原。许攸率军坚守,夜间遣将率兵扰之。诸将不胜其扰,劝张辽移营后撤。
张辽不从,思起一计,与程昱商议。张辽曰:“辽与诸将分营而立,辽率两万兵观屯于大营之侧以作诱饵,公与夏侯将军率领余军驻守大营。许攸必率众前来偷袭,公与夏侯将军从前营掩击,断其归路,袭其城池,吾军众,许攸必败也。”程昱劝曰:“此计虽妙,然而太险,倘若文远有何闪失,东征大军有何面目回归。可使一偏将引兵诱之,便可胜之。”张辽曰:“普通一将,必不能引许攸重兵而出,此计虽险,然可乘机歼其主力,一战决河北战局也。辽若有失,公与夏侯将军统其军,继续攻打,河北必败。”
张辽随将调兵兵符交于夏侯淳、程昱,夏侯淳服其胆色,心折不已。程昱使人流言,说曹操以张辽久攻不下,免其职,以夏侯淳、程昱代之。夏侯淳因失利曾受张辽军仗,使其率军两万分营而立。许攸得讯,使探兵细探,其讯属实,许攸大喜,召集诸将曰:“今张辽为夏侯淳所忌,分营自立,其营军少,吾拟一举而灭之,诸位尽力丰助。”诸将多吃张辽苦头,闻言大喜。
入夜,许攸使卞喜、王粲率军两万守城,自与诸将率八万大军往劫张辽营寨。张辽立营之时知许攸必至,于营内掘下陷坑若干,又使部下多备弓箭,命巡夜士兵分为两班,一班五千人。许攸引兵来到,为巡夜曹军发现,张辽使兵士以弓箭击之,河北兵损伤众。然河北兵多,诸将又力攻之,前寨遂破,张辽率军在后寨结阵应敌,对兵士言:“今河北军已中吾计,诸位可坚守之。会大营兵到,河北军必败也。河北军扬言,吾军被俘皆坑之。”众军见已陷绝地,皆出力相战。河北军不识地形,为陷坑所害者极多。
程昱闻报,命夏侯淳、吴纲统兵三万,以降卒带路,前锋五千人换上河北军衣甲,报以返城之军,赚开城门,接应后军抢城。自与夏侯威、夏侯恩弃营而去,率领大军九万掩击河北军。
许攸见程昱援军赶到,分兵迎战,仍以多军攻击张辽部。程昱所率之军跟随张辽日久,向服其能,闻知张辽有难,拼死向前,河北军抵挡不住,住后退来。此时张辽部见援军赶来,士气大振,也拼死向外杀来。程昱军众,河北军渐渐不敌。
时夏侯淳已袭得平原,杀死守将卞喜,王粲见势不妙,率败军往乐陵逃去。夏侯淳命吴纲率军两万守城,自率军一万住援张辽。许攸见平原火起,料知又中张辽诡计,不顾攻击张辽,率领诸将往外杀来。
许攸等杀到平原城下,正逢夏侯淳引军出城,知平原已失,也不与夏侯淳部交战,率领诸将前往乐陵。张辽等又率军追杀一阵,见乐陵救兵赶到接应,遂引军回。
此战极其惨烈,张辽部折兵一万余。许攸部死伤三万五千余,平原失陷,上书袁尚请罪。