金旋見曹仁敗退,任命6遜為中路軍元帥,率領重兵屯於築陽,自回長沙處理軍政要事。劉備因接連作戰,萬事荒廢,亦要整兵休養。曹操最初擔心金旋有北上之意,見其按軍不動,決定出兵攻打漢中張魯。
初張魯擁漢中、下弁兩郡,其弟張衛、、馮習皆有將才,謀士許靖、閻圃多謀,故而雄踞西北,常常出兵與劉表相爭。後來其被馬騰連敗,失去下弁之地,兵勢遂弱。又寵愛張松,漸奪眾將之權,眾將分心,其勢益弱。後來張魯見曹操佔去長安,金旋奪取上庸,馬騰屯兵下弁,都有吞併之意,納張松之計,請降曹操。
曹操此時戰禍不斷,見其不戰而降,大喜過望,封其為西北侯。後來馬騰相侵,長安勢危,曹操遣使命其出兵援救長安,張魯見馬騰兵精將勇,又恐耗費錢糧,屯兵不至,長安險被攻破,幸得王雙等人拚死守住。張魯畏懼曹操怪罪,復反。
漢中守兵共有六萬,張魯見曹操率領十萬大軍來攻,命其弟張衛率領、馮習、閻圃,統軍五萬屯於散關禦敵。又使張松為使,請馬騰起兵攻打長安,擾亂曹軍後方。馬騰本與曹操有怨,今見長安空虛,起兵十萬來犯。
時曹操使大將樂進、呂虜率領六萬兵駐守長安,聞訊飛報曹操。曹操命領李典、臧霸、賈詡率領三萬精兵還守長安,自率兵七萬攻打漢中。
諸葛亮見漢中大軍皆赴散關禦敵,命令黃忠率領本部軍為先鋒,星夜兼程偷襲漢中,自率大軍隨後趕來。漢中各處關隘防守空虛,黃忠大軍一到,皆星散而逃,黃忠軍順利到達漢中城下。漢中城內僅一萬老弱殘兵,黃忠精銳之師,虎狼之軍,不及天明,攻克漢中,張魯率領敗軍退往散關。
張魯敗軍到達散關,眾將聞漢中失守,軍心浮動。曹操率軍來攻,一觸即潰。張松為曹兵生擒,被曹操斬。張魯兵敗,無處可投,率領敗軍欲要繞過漢中,赴下弁投奔馬騰。剛過漢中,朱恆、文聘、周泰、譚雄四將伏兵突起,將張魯圍與核心,張魯扮作小軍,匹馬逃往下弁。所部全軍覆滅,其弟張衛被周泰所斬,、馮習、許靖、閻圃率領所部投降。
曹操見大軍一番苦戰,反被諸葛亮佔地奪軍,心中無名火起,率軍來攻漢中。諸葛亮大軍倍於曹操所部,屢敗曹軍。又暗命朱恆率軍襲擊曹操糧道,奪其糧草。曹操軍糧盡,退往長安,後軍途中遭伏,被黃忠、譚雄、周泰三將率領六萬精兵擊潰,折兵近兩萬。
金旋任命華歆任漢中太守,任命全琮之弟全端為漢中守備,命令馮習為長阪守備,命令為築陽守備。將張魯、曹操降兵收編於各軍。
馬騰所部攻打長安,正逢曹操引領敗軍退回,馬騰率領所部又衝殺一陣,曹操再次大敗,折親兵將領車胄,李典、樂進率領城中精兵接應,曹操得以入城。馬騰見曹操兵回,長安工事堅固,兵多將廣,率軍返回安定。車胄跟隨曹操日久,為曹操心腹大將,命喪於馬騰手中,曹操極為惱火。曹操遂於長安整頓兵馬,調兵遣將,準備攻取西涼。
呂布見曹操大軍西征,趁機招兵買馬,恢復元氣。欺負孔融兵寡,命令張遼、陳登駐守下邳,侯成、宋憲駐守都陽,自與陳宮、高順等將率領兵馬五萬攻取北海。北海孔融,為孔聖人之後,博學多藝,通古知今,然而不知兵事,軍事皆依賴管亥、武定國兩將。
呂布大兵到來。管亥率領諸將迎戰。呂布部下驍將牛金出戰。管亥命嚴政迎戰。不及十合。牛金斬嚴政於馬下。武定國大怒。拍馬出陣。高順副將毋丘儉迎之。兩將大戰三十餘合。不分勝負。呂布搭弓射之。正中武定國左臂。管亥率軍救之。呂布揮軍殺上。北海軍不敵。退入城中。不敢出戰。孔融使人求救於袁紹。
時袁紹兵強馬壯。又無邊事。糧草極盛。欲要攻取北海。因孔融乃聖人之後。為人寬厚。無起兵之由。見孔融求救。命大將顏良、高覽率領五萬大軍急援北海。
呂布攻勢甚猛。官亥率軍固守。顏良、高覽率兵趕到。攻擊呂布後軍。呂布命令高順率兵攻城。分軍與河北兵交戰。高覽出陣。與呂布對敵。未三合。不敵。顏良揮刀來救。雙戰呂布。大戰五十餘合。顏良、高覽不支。撥馬回陣。呂布拉弓射箭。顏良聽有弦聲。伏鞍而逃。正中顏良盔纓。呂布揮軍出擊。顏良大敗。與高覽聚集敗軍。於北海以北十里紮寨。
顏良經此一戰。知非呂布之敵。急報袁紹。袁紹命大將文丑、淳於瓊率領五萬在軍來援。文丑到達北海顏良軍營。兩軍合兵。挑戰呂布。兩軍對圓。淳於瓊不知深淺。拍馬出戰。直取呂布。一合被呂布挑於馬下。文丑出戰。兩將相交十餘合。文丑氣力不加。往後便走。顏良、高覽兩將齊出。救得文丑。文丑回馬。三將大戰呂布。呂布精神抖擻。戰得三將心驚膽戰。陳宮在後掠陣。命令高順上前助戰。顏良三將不支。回馬逃命。陳宮揮軍殺上。河北諸將膽怯。兵無戰心。被呂布率軍追擊直至樂陵。袁紹見軍中諸將皆非呂布對手。命令顏良等將暫時退回南皮。
孔融見呂布勇冠三軍。天下無敵。河北援兵敗退。守城軍士皆無戰心。召眾人相議。嚴峻道:「呂布英勇。曹操諸將合擊尚不能勝之。北海兵少將寡。實非其敵手。不如棄城而去。投奔袁紹。」楊修曰:「袁紹多謀而寡斷。胸無大志。後必為曹操所敗。曹操兵多將廣。不如投奔曹操。諸公不失富貴也。」
眾將然之。孔融遣使降於曹操。曹操時在長安。命夏侯淳起兵攻打下邳。被張遼率軍阻住。張遼又命宋憲起都陽兵擊其後軍。兩軍夾攻。夏侯淳軍敗回徐州。
北海外無援兵,內無戰心,未幾日被呂布攻破。管亥諸將保孔融投奔濮陽,為陳宮伏兵攔住,北海大將武定國、鄧茂、韓暹,謀士嚴峻、沮鵠,皆為呂布亂軍所殺。管亥、楊修保護孔融拚死衝出條血路,剩餘百餘騎逃到濮陽,北海士兵多降。呂布得到北海兵將,軍容復盛。