二一九年,最初,夏侯渊虽然屡战屡胜,曹操常警告他:“当一个将领,应当有害怕胆怯的时候,不可以完全仗恃勇敢。勇敢当然是基本,但行动必须依赖智慧计谋;一味不怕死,不过只能成为一个人的敌人。”
夏侯渊跟左将军刘备僵持,自去年(二一八)直到现在,刘备从阳平关(陕西省勉县西)南方渡过沔水(汉水),沿着山麓,稍稍向前推进,在定军山(勉县南)扎营。夏侯渊率军夺取,法正说:“时候已到!”刘备命讨虏将军黄忠在高处擂动战鼓,大声吶喊,开始攻击,夏侯渊军大败,遂斩夏侯渊,并斩益州州长(刺史)赵颙(曹操所任命,遥领),张郃不能独留,率军退回阳平关。
这时,元帅丧生,人心浮动,军中不安,不知如何才好。汉中郡军区司令长官(督汉中军事)杜袭,跟夏侯渊的军政官(司马)太原郡(山西省太原市)人郭淮,集结散兵溃卒,通令各军:“张郃是国家名将,刘备最为忌惮;今天事情紧急,非张将军不能领导。”遂推举张郃暂时继任元帅。张郃下令各军戒备,亲自巡视阵地,各将领都接受节制,军心转安。
第二天,刘备打算渡过汉水攻击,张郃部下将领们认为敌众我寡,无力抵挡,准备沿着汉水构筑阵地拒抗。郭淮说:“这只能暴露我们的弱点,而不能伤害敌人,不是好的计策。不如远离汉水,引诱刘备渡河,等他渡过一半,我们再发动攻击,可以击破。”阵势既布置完成,刘备犹豫,不敢渡河,郭淮遂坚守营寨,表示不再撤退;并把情形呈报曹操,曹操嘉勉他处理恰当。派使节送给张郃皇帝符节(“假节”、“持节”),仍命郭淮当军政官(司马)。
三月,曹操从长安(陕西省西安市),穿过斜谷(陕西省眉县西南),沿途严密防守要害地带,接近汉中(陕西省汉中市)。刘备说:“曹操虽然亲自出征,已不能挽救颓势,我一定可以夺取汉川(汉中)!”集中兵力,据守险要,拒绝交战。曹操军粮都运到北山(大本营北方之山)之下,黄忠发动突击,在预定的时间内,不见回军。翊军将军赵云率数十人的骑兵斥候,出营察看,正逢曹操大军出动,双方猝然相遇,赵云下令攻击,一面搏斗,一面撤退。曹操大军被冲散后,立即集结,紧追不舍,直逼赵云大营。赵云入营后,大开营门,拔除旗帜,停止击鼓,呈现一片坟墓般死寂。曹操怀疑赵云故设埋伏,不敢进击,向后撤退。赵云营内突然战鼓雷鸣,天地震动,用强弓射击曹操大军后卫部队,曹操大军惊骇狂奔,自相践踏,很多人坠入汉水中溺死。第二天,刘备亲自到赵云军营视察战场,说:“子龙(赵云别名)一身都是胆!”
曹操跟刘备对峙一个多月,曹操大军官兵很多逃亡。
夏季,五月,曹操撤退,率领汉中郡(陕西省汉中市)所有部队,返回长安(陕西省西安市),刘备遂完全占领汉中郡。
秋季,七月,刘备自封汉中王,在沔阳(陕西省勉县)兴筑高台,由武装部队列阵,官属陪伴,宣读呈递皇帝刘协的奏章(奏章事实上不能上达,用宣读代替上达,表示仍居于臣僚地位,不敢自专)。奏章读毕,行礼,接受印信,戴上王冠(跟曹操的魏王王冠“远游冠”一样)。把奏章派人乘驿马车,送往首都许县(河南省许昌市东),同时缴还“左将军”、“宜城亭侯”(都是曹操所表授)印信。立儿子刘禅当太子;擢升牙门将军、义阳(河南省桐柏县东)人魏延当镇远将军,兼汉中郡(陕西省汉中市)郡长,镇守汉中。