刘备受到侵扰,派兵出击。张飞战败张郃,曹军退到南郑(今陕西汉中南郑区)。曹操调夏侯渊镇守汉中,自己抽身回中原。
建安二十二年(217),刘备进军汉中,曹操领军至长安声援。刘备进展顺利,斩大将夏侯渊,汉中曹军危急。曹操领兵从长安出斜谷,赴汉中,与刘备对阵。两军僵持,曹操不能夺回汉中。汉中成了“食之无味,弃之可惜”的鸡肋。不得已,曹操于建安二十四年(219)五月放弃汉中,还洛阳,把战线收缩到陈仓(今陕西宝鸡)一带。
此时,关羽向襄、樊发起进攻,曹操利用孙、刘间的矛盾,解除了樊城之围。建安二十五年(220)正月,曹操领兵从摩陂(今河南郏县)回到洛阳,不几天就病逝了,终年六十六岁,后被追尊为太祖武皇帝。
曹操临死前一月,孙权上书劝他当皇帝,他的部属听说后,以陈群、夏侯惇为首也纷纷进言,劝他顺天应民,代汉称帝。曹操却回答:“若天命在吾,吾为周文王矣。”他认为即使当皇帝的条件已具备,时机已成熟,自己也不当,而让自己的儿子去当。果然,不到一年,其子曹丕代汉称帝,建国号魏。中国历史正式进入了三国时期。