建安二十二年217年,刘备派遣张飞、马超、雷铜、吴兰等人攻打下辩,罗平派遣许褚、曹休、郭淮抵挡。
建安二十三年218年,张飞屯兵固山,做出要截断许褚后方的样子,但被司马懿识破。许褚在司马懿的建议下,趁蜀军兵力尚未集结之时袭击吴兰,雷铜、吴兰等战死,马超、张飞于是退走。
刘备又派遣将领陈式去攻打马鸣阁道,打算断绝汉中与许都的联系,但被徐晃击败,死伤甚多。
七月,刘备亲自率军占据阳平关。罗平准备救援汉中。九月,率军抵达长安。
罗军失利
建安二十四年219年,刘备放弃阳平关,南渡沔水,于定军山扎营,夏侯渊率军来抢定军山。
刘备派军趁夜火烧夏侯渊营鹿角。夏侯渊派张郃守东围,自己守南围。刘备调一万多兵马分为十部,猛攻张郃,张郃亲身搏战,刘备一时难以攻克。夏侯渊亲自率领精兵来救张郃,刘备派黄忠攻打夏侯渊,黄忠乘着地势高,鼓噪大喊,奔袭夏侯渊,夏侯渊军与黄忠军短兵相接。夏侯渊及益州刺史赵颙等,都被黄忠军斩杀。
夏侯渊战死后,汉中罗军惶恐不安,郭淮、杜袭等推举张郃暂时统领汉中诸军,以安众心。张郃率军驻守阳平关。
罗刘对峙
刘备击斩夏侯渊后,打算渡汉水来攻郭淮,郭淮部下见己方兵力过少,难以匹敌,建议郭淮可依汉水结阵。但郭淮却认为这是示弱,应该远离汉水结阵,趁刘备军半渡时袭击。但刘备见到郭淮的结阵方式,没有渡水。