谋士刘晔对此也认为,如果不及时乘胜进击,占领蜀地,等到刘备班师回朝安抚民心,就不好攻取了。曹操听后思考良久,说道:“如今我们离开朝廷已经很久了,解决后方的叛乱才是当前任务,既然得到了陇地,就先不要再盼望得到蜀地了,我们先回去吧。”于是留夏侯渊、郭淮、徐晃、张郃等镇守汉中。
正是这个决定给了刘备一个喘息的机会。
建安二十二年(公元218年),在解决了与孙权的问题后,刘备派遣张飞、马超、雷铜、吴兰等人攻打下辩,曹操派遣曹休、曹真、曹洪等人抵抗。第二年,张飞屯兵固山,佯装要截断曹洪后方,但被曹休识破,曹洪突袭吴兰,吴兰、雷铜等战死,马超、张飞于是撤退。七月,刘备占据阳平关,曹操赶忙部署救援,九月抵达长安。
建安二十四年(公元220年),刘备放弃阳平关,南渡沔水,扎营定军山,夏侯渊闻讯赶忙来抢定军山,刘备夜袭夏侯渊,猛攻张郃,夏侯渊亲自率兵解救,与黄忠短兵相接,不敌,被黄忠斩杀,曹军士气大减,人心惶惶,为了稳定局面,张郃暂时统领汉中诸军,三月,曹操率领大军抵达汉中地界,进驻阳平关,刘备占据险要地形,在山上安营扎寨,固守不战,与曹军对峙。