郭圖因為自己的計謀失敗而感到慚愧,于是誣陷道︰
"張郃對我軍的失敗感到高興,並且出言不遜。"
張郃等將領懼怕被追究,于是燒掉了攻城櫓,投降了曹操,曹操對張郃的投降感到高興,親自迎接並稱"如微子去殷,韓信歸漢也",並將張郃拜為偏將軍、封為都亭侯。
後來張郃頗受曹操重用,交給其部隊,讓他跟隨自己攻打鄴城,佔領了鄴城。
張郃又跟隨曹操到渤海攻打袁譚,他單獨率軍包圍了雍奴,擊潰了**。
隨同曹操征討柳城的時候,張郃和張遼擔任先鋒,在白狼山之戰中,受張遼指揮,大破烏桓,斬蹋頓及名王以下十余人,俘虜二十余萬人,最終討平烏桓,徹底鏟除袁氏殘余,張郃因為屢立戰功升任平狄將軍。
張郃還領兵征討東萊郡,討伐管承,後來,張郃與牛蓋等人受到張遼的督領,一起討伐**、梅成等人,在天柱山之戰中大獲全勝。
張郃跟隨曹操到渭南,擊潰了馬超、韓遂等,又包圍了安定,楊秋投降。
張郃、夏侯淵一起征討盤踞在鄜城的賊寇梁興和武都一帶的氐族叛軍,再次擊敗了馬超的部隊,平定了宋建統治的地區。
建安二十年,曹操西征張魯,抵達陳倉,準備從武都郡進入氐族部落,氐族人擋住道路,曹操派張郃統帥大軍討伐梁興和氐族首領竇茂所部。
不久從散關入漢中,派張郃率五千步兵在前開道,一直到陽平,張魯投降,曹操回軍,留張郃與夏侯淵、徐晃等守漢中,以拒劉備。
同年,張郃別督諸軍南下進攻巴東、巴西二郡,將當地百姓遷徙到漢中,劉備派征虜將軍張飛為巴西郡太守,抗擊張郃。
張郃率軍進至宕渠,與張飛相拒五十余日,張飛率精兵萬余人從小道進攻張郃。
由于山道狹窄,首尾不能相救,張郃大敗,僅帶十余人棄馬爬山逃跑,之後收攏敗兵,撤回南鄭。
原來的蕩寇將軍張遼因為威震逍遙津而升遷為征東將軍,于是,張郃補位此職,被拜為蕩寇將軍。
建安二十三年,劉備進攻漢中,屯于陽平,夏侯淵、張郃、徐晃等率軍迎擊,張郃負責防守廣石。
建安二十四年,劉備親自率精兵萬余人,分為十部,夜間猛攻張郃。
張郃率親兵與蜀軍進行對抗,劉備不能攻克張郃,寫信要求益州撥發援兵,諸葛亮一時遲疑不決,從事楊洪勸道︰
"漢中是益州門戶,沒有漢中就沒有益州,還遲疑什麼?"
諸葛亮恍然大悟,立刻發兵增援,其後,劉備趁夜放火燒掉**營外的鹿角。
夏侯淵派遣張郃去修復南圍鹿角,自己親自率輕裝士兵去修復東圍鹿角,劉備進攻張郃,張郃的軍隊作戰不利。
因此,夏侯淵把東圍鹿角的一半兵馬派去救助張郃,劉備的軍隊趁機進攻東圍鹿角,夏侯淵被蜀軍所殺。
**大敗,張郃同敗軍一起退守陽平關東,而當劉備听聞夏侯淵被斬殺,只說︰"要殺就殺張郃,殺夏侯淵有什麼用!"
司馬郭淮和督軍杜襲收斂散卒,郭淮見狀,便說︰
"張將軍是國家的名將,劉備也忌憚他,現在形勢緊迫,只有張將軍才能安定軍心。"
于是眾人推舉張郃出任主帥,指揮士兵,布置營寨,軍心安定,不久,曹操遣使令張郃假節。
劉備欲渡漢水來攻,見魏軍在漢水以北列陣相迎,劉備于是放棄渡河,隔水相持。
曹操親自進攻漢中,不能取勝,于是撤出漢中的部隊,令張郃屯兵于陳倉。
延康元年,曹丕即魏王位後,任命張郃為左將軍,進封都鄉侯爵位。
等到曹丕登基之後,又進封他為鄚侯,命令張郃與曹真率領兵馬征伐盤踞在安定一帶的盧水胡人和東部羌人。
戰斗結束後,曹丕又在許昌宮召見了張郃、曹真,派張郃南下與夏侯尚一起進攻東吳政權的江夏郡。
張郃獨自率領幾路大軍渡過長江,奪取了百里洲上的吳軍堡壘。
曹叡即位後,派張郃來到南方,駐扎荊州,和司**一起進攻孫權的部將劉阿等人,大軍來到祁口,與吳軍激戰,打敗了劉阿所部。
太和二年,蜀漢丞相諸葛亮大舉北犯,天水、南安、安定三郡吏民叛應諸葛亮,當時朝臣未知計所出,曹叡自信地說︰
"諸葛亮恃險固守,不易進攻,
現在他自動來了,正符合引出敵人的戰術,打敗諸葛亮是一定的了。"
于是曹叡給張郃加官特進,讓他總督各路軍馬,在街亭阻擋諸葛亮的部將馬謖。
馬謖依傍險要的南山扎寨,沒有下山佔據城池,張郃斷絕了他取水的道路,然後發起進攻,大敗馬謖。
南安、天水、安定各郡反叛魏國響應諸葛亮,張郃領兵平定了這幾處地方,曹叡下詔說︰
"賊寇諸葛亮率領巴、蜀的烏合之眾,遇上了猛虎一樣的我軍將士。
將軍您披肩甲、執利器,攻無不克,朕要嘉獎你的大功,增加你的食邑一千戶,連同一千的賞賜共計四千三百戶。"
當時司**在荊州治理水軍,打算沿著沔水進入長江討伐東吳,曹叡下詔命令張郃統帥關中的部隊接受司**的指揮。
張郃到達荊州時,正趕上冬季水淺,大船不能行進,于是回師方城駐扎。
公元229年,諸葛亮再次出祁山,對陳倉發動猛烈進攻,曹叡派驛馬召張郃到京師,還親自到河南縣城,設置酒宴為張郃送行。
曹叡派遣三萬士兵以及武衛、虎賁兩營的勇士護衛張郃,還問張郃︰
"等將軍到了前線,諸葛亮會不會已經佔領了陳倉?"
張郃知道諸葛亮孤軍深入,不會攜帶太多的糧草,不能久攻,就回答說︰
"估計臣還沒到前線諸葛亮就已經撤走了,臣屈指計算,諸葛亮的糧草支撐不了十天。"
張郃晝夜行軍到達南鄭,諸葛亮果然撤退了,曹叡詔令張郃回師京城,任命他為征西車騎將軍。