文莱领军再去攻城,曹操令曹真、曹休、曹仁、曹洪、许褚、徐晃杀出。文莱令马超、黄忠、魏延、文武、张绣、文丑迎战。马超首先战败曹真,黄忠也败曹休,其余四将与地方不分胜负。曹操忙领曹彰、吕虔等亲自杀出。四将大败退回。文莱退四里安营扎寨,夜里令张任、文聘轮流领军三千杀去渤海,只敲锣打鼓,乱箭射城,并不攻城。曹操忙起床,令徐晃开城门迎战。城门一开,三千兵忙逃走回营。徐晃不敢追杀,回城睡觉。不料三千士兵又杀来,又被赶走。徐晃不敢睡,在城上守夜。三千士兵又杀来,徐晃万箭齐发,三千士兵又走。徐晃大怒,领军追杀。只见在一个十字口中左右两边杀来文丑、张绣二将,各领一万兵。徐晃大败而走,损兵五千。回来后,徐晃等不敢睡觉,只在城上守着,也不敢出战。曹操全军也被吓得不敢睡觉,生怕此时文军杀入城来。次日白天大雨不断,春眠不觉晓,人人都酣睡着。文莱令昨日出战的文丑、文聘、张任、张绣睡觉,自领大军三万并马超、文武、魏延、黄忠杀来,惊醒城内士兵。徐晃领军迎战,一出来就大败而回。曹洪、曹仁先后迎战,都战败。三战共损士兵一万。
继续攻城,徐晃坚守不战,瞬间睡倒在城上。文莱大喜,领全军悄悄进军,不擂鼓,不言语,只进军,登云梯搭在城墙上。忽然,文莱军擂鼓了,士兵少数惊醒,只见敌军就在跟前,也来不及穿上盔甲、拿起武器,就被敌军白刀子进红刀子出。徐晃大败而下了城墙,忙告曹操:“魏王快逃,文莱已杀入城中了!”
曹操问:“怎么可能?”
徐晃道:“敌军三万悄悄进军,把登云梯搭在墙上,才擂鼓。吾等醒来时,敌军已在面前了!”
曹操大骂道:“晚上不休息,大白天睡什么?”
徐晃解释:“晚上迎战敌军......”
曹操又问:“胜了,败了?”
“败了。”
“败了还敢睡?你不给我死守,还睡觉,等着我杀你吗!”曹操道。
徐晃跪下请罪后,忙随曹操逃奔出城。袁僚此时领军巡视城内,见文莱杀来,逃去,被城中百姓保护。文莱大笑道:“一个大郡太守,居然受百姓保护,真让人耻笑!”于是放弃杀袁僚,将袁僚继续任命为渤海太守。
曹操不知文莱计划攻击何处,便守在邺城。文莱突袭广阳郡,一攻即破。曹操得知,忙分兵与程昱去守渔阳郡,自守涿郡。文莱又攻击北平郡,也破城。又悄悄攻破蓟县,用兵符假扮曹军发出援救信。曹操令曹洪赶来救援,只见城外贾诩领军一万包围。曹洪忙杀败贾诩,入城,只见四周都是敌军,把曹洪杀得大败而逃。曹洪身负四刀伤,中两箭,重伤,被送回洛阳医治。
文莱联合北方辽西鲜卑国、辽东公孙度二方夹击涿郡、渔阳郡。二方惧怕,只好同意。程昱先败,渔阳归了文莱。曹操后败,涿郡也归文莱。曹操恐自己陷入被包围的险境,只好在中山郡背后坐山观虎斗。文莱继续收得代郡、上谷郡,忽然进攻辽西,让公孙度大吃一惊。公孙度原来以为文莱联合了自己,肯定不会再攻击自己,于是领军三万迎战。文莱因粮草不剩一石,只好退回北平郡驻守,等待军粮。次日,夏侯霸送军粮六万石来,南方公孙瓒、邹靖听说杀到了幽州,也领军北上靠对此处的熟悉而对战公孙度。公孙度在一日领军来袭北平,中途在长城下被邹靖乱箭射回。原来邹靖知此处有一段长城,便领军在此驻守,防公孙度袭击。文莱乘势领十万大军掩杀而来,追击公孙度,所向披靡,攻破辽西、乐浪,包围辽东。公孙度欲乘船南下投奔孙权,不料中途被夏侯霸领东莱水军截杀,公孙度只好率众投降。