為刺客所殺。
同年,郭嘉隨曹操在官渡之戰中大敗袁紹。建安七年(201年)5月,袁紹因軍敗憤愧嘔血而亡,少子袁尚繼大將軍及冀州牧位,令長子袁譚率少數兵力防守黎陽。九月,曹軍渡黃河攻黎陽,譚請增兵,尚恐譚兵多後奪其權,遂自率軍來援,與曹軍相持於黎陽。
建安八年(203年)二月,曹軍發起總攻,大戰於黎陽城下,袁軍戰敗,袁尚、袁譚棄城逃鄴,曹軍佔領黎陽。四月,曹操進軍鄴城,為充實軍糧,搶收小麥。袁軍乘機發起反擊,曹軍小挫。曹操本擬重新組織攻城。郭嘉認為:“袁紹愛此二子,莫適立也。有郭圖、逢紀為之謀臣,必交鬥其間,還相離也。急之則相持,緩之而後爭心生。不如南向荊州,若徵劉表者,以待其變;變成而後擊之,可一舉定也”(《三國志&;#8226;魏書&;#8226;郭嘉傳》)。曹操納其計。五月,撤軍返許昌(今河南許昌東),留部將賈信屯兵黎陽,監視袁軍。
建安九年(203年),袁尚、袁譚果然發起內訌,袁譚為袁尚所敗,派辛毗向曹操乞降。曹操遂以支援袁譚為名,攻打鄴城(今河北臨漳西南)。七月,袁尚軍潰散逃往中山(今河北定州),輜重盡為曹軍所獲。鄴城守軍聞汛瓦解。十月,袁尚勢力基本上為曹操所消滅。
在曹操圍攻鄴城時,原已歸降曹操的袁譚,又背叛曹操,乘機攻取甘陵、安平、勃海、河間等地,並進攻逃至中山(今河北定州)的袁尚,迫使袁尚再逃故安(今河北易縣東固安),投奔幽州(治今北京城西南)刺史袁熙。袁譚收袁尚殘部,駐紮龍湊(今山東平原東南)。曹操在擊垮袁尚後,按各個擊破的方針,以袁譚背盟為藉口,出兵進攻袁譚。建安十年(204年)正月,曹操進攻南皮,大破袁軍,佔領南皮,袁譚出逃,被曹軍追上殺死。袁譚所屬各郡、縣盡歸順曹操。郭嘉對曹操說:“多闢青、冀、幽、併名士以為掾屬,使人心歸附”(《資治通鑑&;#8226;卷第六十四》)。曹操為安撫地方,採納了郭嘉的建議,穩定了統治。冀州平定,郭嘉因功被封為洧陽亭侯。
時遼西少數民族烏桓部落乘中原戰亂,擄遷漢族邊民10餘萬戶。曹操取冀州,殺袁譚後,袁熙、袁尚逃往烏桓,二者聯結,不斷侵擾邊境。曹操為統一北方,於建安十二年(207年)秋,開始遠征烏桓的作戰。劉備聞訊,立即趕往荊州,勸劉表趁曹操北征烏桓之機奪取許都(今河南許昌東),迎獻帝,興漢室。曹操甚為擔心,諸將皆說:“袁尚亡虜耳,夷狄貪而無親,豈能為尚用!今深入徵之,劉備必說劉表以襲許,萬一為變,事不可悔”(《資治通鑑&;#8226;卷第六十五》)。郭嘉卻詳細地分析了平烏桓之役的可行性和重大意義:“公雖威震天下,胡恃其遠,必不裝置。因其無備,卒然擊之,可破滅也。且袁紹有恩於民夷,而尚兄弟生存。今四州之民,徒以威附,德施未加,舍而南征,尚因烏丸之資,招其死主之臣,胡人一動,民夷懼應,以生蹋頓之心,成覬覦之計,恐青、冀非己之有也。表,坐談客耳,自知才不足以御備,重任之則恐不能制,輕任之則備不為用,雖虛國遠征,公無憂矣”(《三國志&;#8226;魏書&;#8226;郭嘉傳》)。
曹操聽罷,茅塞頓開,遂立即揮師北上,進至易(今河北雄縣西北)時,郭嘉又獻策說:“兵貴神速。今千里襲人,輜重多,難以趣利,且彼聞之,必為備;不如留輜重,輕兵兼道以出,掩其不意”(《三國志&;#8226;魏書&;#8226;郭嘉傳》)。後來,這一戰成為了中國戰爭史上“兵貴神速、奇兵制勝”的經典戰例。曹操依計而行,親率輕騎兵,晝夜兼程,疾速行軍。在白狼山(今遼寧喀喇沁左翼蒙古自治縣東境白鹿山)殲滅烏桓主力