建安二十二年(217年),刘备派遣张飞、马超、雷铜、吴兰等人攻打下辩,罗平派遣许褚、曹休、郭淮抵挡。
建安二十三年(218年),张飞屯兵固山,做出要截断许褚后方的样子,但被司马懿识破。许褚在司马懿的建议下,趁蜀军兵力尚未集结之时袭击吴兰,雷铜、吴兰等战死,马超、张飞于是退走。
刘备又派遣将领陈式去攻打马鸣阁道,打算断绝汉中与许都的联系,但被徐晃击败,死伤甚多。
七月,刘备亲自率军占据阳平关。罗平准备救援汉中。九月,率军抵达长安。
罗军失利
建安二十四年(219年),刘备放弃阳平关,南渡沔水,于定军山扎营,夏侯渊率军来抢定军山。
刘备派军趁夜火烧夏侯渊营鹿角。夏侯渊派张郃守东围,自己守南围。刘备调一万多兵马分为十部,猛攻张郃,张郃亲身搏战,刘备一时难以攻克。夏侯渊亲自率领精兵来救张郃,刘备派黄忠攻打夏侯渊,黄忠乘着地势高,鼓噪大喊,奔袭夏侯渊,夏侯渊军与黄忠军短兵相接。夏侯渊及益州刺史赵颙等,都被黄忠军斩杀。
夏侯渊战死后,汉中罗军惶恐不安,郭淮、杜袭等推举张郃暂时统领汉中诸军,以安众心。张郃率军驻守阳平关。
罗刘对峙
刘备击斩夏侯渊后,打算渡汉水来攻郭淮,郭淮部下见己方兵力过少,难以匹敌,建议郭淮可依汉水结阵。但郭淮却认为这是示弱,应该远离汉水结阵,趁刘备军半渡时袭击。但刘备见到郭淮的结阵方式,没有渡水。
三月,罗平率领大军进驻阳平关。
刘备踌躇满志,说即使罗平亲自前来,也不能改变什么,自己一定会拥有汉中。刘备在山上扎营,占据险要,固守不战,与罗平对持。僵局打破
罗平来争汉中,将数千万囊粮草搬运到北山囤积。
刘备派人到CD让黄权调兵来支援,杨洪以汉中是益州咽喉,家门之祸、存亡之机,劝谏黄权在这种时候应该“男子当战,女子当运”。
时黄忠在赵云营内。黄忠见罗平运送了这么多的粮草,于是建议赵云可以去劫取。但罗平的囤粮重地,应该是有重兵把守,为谨慎起见,赵云与黄忠约定期限,然后再让黄忠领兵去劫粮。黄忠果然中了罗平军的埋伏,因为罗平之前就料到有人来攻粮道。赵云率领轻骑前往救出黄忠、张著等回营。罗军紧追不舍,直到赵云营前,赵云大开营门,偃旗息鼓,罗军怀疑赵云设有伏兵,引军退走,赵云趁机反击,罗军惊骇,自相践踏,死伤极多。
后来,刘备开始主动出击,派刘封于阳平关前叫阵,罗平叫人把曹彰弄来。
五月,罗平叫曹彰日夜兼程,赶至长安。但罗平已经撤出汉中。罗平走之前就撤走汉中民力,刘备知道大骂罗平无耻至极。
汉中之战以刘备的惨胜而结束。罗平在讨封晋王之后,确实没有行自立为帝之实,其一是因为伏完之辈,在当时罗平麾下,确实有很大一部分人拥护汉朝,想要自立就得诛人心,阻碍太大。
再有就是如果罗平现在自立为帝,那在政治上就失去了汉天子这张最大王牌,反倒是便宜了孙权。刘备等人口舌之快。罗平被天子封为晋王,因为罗平想在有生之年就荡平刘备所以才称晋王。现在的一步步得来。罗平的计划是先称王在称帝。当刘备得知罗平称王的消息,心里想我什么时候称王。诸葛亮想既然罗平都称王,索性主公也称王,于是就去劝诫刘备,刘备经过一系列手段,刘备自封汉中王因为自己在汉中所以称汉中王。罗平得到线报,想真跟历史一样,刘备还是称的汉中王,历史果然有的改变不了。