建安二十三年(218年),刘备已取代刘璋占据益州,他采纳心腹谋士法正的建议,亲自带兵北伐,进军阳平关,与曹操争夺巴蜀通往关中的门户——汉中。这是蜀汉北伐的第一战。
汉中与曹魏控制的关中地区之间,横贯着秦岭,与蜀地是唇亡齿寒的关系,也是屏障蜀地的天险。一旦掌握这一险要地带,只需一大将镇守,就可御敌于外。从汉中北上关中和陇右,是先民利用秦岭河谷地形开辟的五条古道,自东向西分别为:子午道、傥骆道、褒斜道、陈仓道和祁山道。这几条通道,在蜀汉北伐中发挥了关键作用。
汉中争夺战中,刘备与曹操手下大将夏侯渊、张郃对峙一年有余,之后才改变策略,从阳平关南渡沔水,在定军山斩杀夏侯渊,闹得曹军人心惶惶。
次年(219年)三月,曹操亲自带兵来救汉中。多年未见的曹、刘在阵前重逢,刘备指着老对手喊话道:“曹公虽来,无能为也,我必有汉川矣!”之后派义子刘封出阵挑战。曹操一听怒了,回骂道:“卖履舍儿,长使假子拒汝公乎!待呼我黄须来,令击之!”你这卖草鞋的别得意,等我儿子来你就倒霉了。黄须指的是曹操的儿子曹彰,也是曹魏的一员猛将。
汉中之战的结果耐人寻味,曹操认为局势不利,从汉中撤军,退至关中。刘备占据汉中,并在当年七月自称汉中王。