漢中之戰

过程

建安二十年（215年），曹操进攻占据汉中的张鲁，不久张鲁遂投降。刘备知道消息后，立即和正争夺荆州的孙权议和，回到蜀中。曹操留夏侯渊督张郃、徐晃等守汉中；以丞相长史杜袭为驸马都尉，留督汉中事。虽然后来曹军有数次攻蜀，但刘备已有防范。
建安二十二年（217年），法正游说刘备，分析出曹操所以留夏侯渊守备，必是有内乱；夏侯渊、张郃非一国之帅，用大军必可攻克汉中；说出三个得到汉中的益处：上，可以讨伐国贼，尊崇汉室；中，可以虎视雍、凉二州，开拓国境；下，可以固守要害，是持久的计谋。刘备赞同，开始汉中之战。
刘备率法正、黄忠、魏延、赵云、高翔、刘封等，先用黄权之计攻破巴东郡的朴胡及巴西郡的杜濩，进攻汉中的阳平关；另派张飞、马超、吴兰、雷铜、任夔等攻武都郡，屯于下辨，氐人雷定等七部万多部落响应；而曹军便以夏侯渊守阳平关，张郃守广石、徐晃负责马鸣阁至阳平一带，主力抵挡刘备军，曹洪与曹真则率军防卫张飞军。
建安二十三年（218年），张飞与马超改屯于固山，声言要断曹军后路，曹洪此时想攻击下辨的吴兰，但众人都因张飞军的扬言举动有所迟疑，惟独曹休认为敌人如要断军后路，应该伏兵以行；现在他们如此扬言，不如趁他们未合兵，尽早攻击敌人。曹洪认同，进击吴兰军，斩杀雷铜、任夔等人，吴兰逃至氐族，被当地人强端所杀。至三月，张飞与马超军撤走。
同时，刘备与夏侯渊等对峙。七月，刘备派陈式等攻击马鸣阁，被徐晃大破，士兵中有部分甚至在逃亡时掉进山谷中。刘备率精兵十部又不能攻克屯兵广石的张郃，急送书信到成都要求增派援兵。诸葛亮接受杨洪“若无汉中，则无蜀矣”的意见，于是立即发兵援救。刘军与曹军继续对峙。
由于形势紧张，曹操便在同年九月到长安坐镇，不过由于内部问题，所以没有立即挥军抗敌。另一方面，夏侯渊与刘备已经相峙一年，刘备为突破局面，在建安二十四年（219年）正月，刘备由阳平南渡沔水，沿着山前进，在定军山依山势立营。夏侯渊与张郃率兵来争夺此营，在走马谷设营。黄权进谋给刘备，于夜中，刘军火烧曹军鹿角。夏侯渊派张郃守护东围，而自己则率军守护南围。刘备军向张郃那面进攻，张郃不利，夏侯渊便将兵分半帮助张郃。此时，法正说：“可击矣。（可以攻击了）”刘备便派黄忠乘着高势、擂鼓呐喊进攻，大破曹军并击毙夏侯渊及赵颙。张郃惟有率兵至汉水北下营。
当时曹军失去元帅，军中纷乱。杜袭与郭淮收合散兵，推举张郃为统帅。张郃接受，指挥军队安定阵营，并授各将领节度，军心才安定。明日，刘备想渡汉水进攻，各将领认为寡不敌众，想依河建阵御敌。郭淮却认为这只是向敌人示弱，不足以挫败敌人；建议在远离汉水的地方设阵，引他们渡河，当过了一半时才作攻击。张郃认为可行，设阵后，刘备疑惑，不敢渡河，曹军于是退回阳平继续坚守。而曹操得知夏侯渊阵亡的消息，便命曹真立即增援阳平。曹真到达后，指挥徐晃军反击刘备派出的高翔军，获得胜利，暂时稳定了战场形势。
三月，曹操亲自率军由长安出兵斜谷，到达汉中。但刘备却不担心，认为：“曹公虽来，无能为也，我必有汉川矣。（曹操虽然到来，但也无能为力了，我必定可以拥有汉川了。）”便聚集群众，守备险地，不和曹军交战。
后曹操在北山下运粮，黄忠出兵夺取，但过期不还。赵云便率数十骑出营寻找，正好遇上曹操大军，被围，赵云突围冲阵，一面战斗、一面退却。曹兵再次集合，追到赵云军营下，赵云入营后便大开门，偃旗息鼓。曹军怕有伏兵便退却，忽然赵云军雷鼓震天，用劲弩从后射杀曹兵。曹兵慌张害怕，自相践踏，堕进汉水而死的人甚多。
曹操与刘备相守数月，曹军死伤甚多，曹操欲撤退。至五月，曹操终于退兵回长安，刘备占领汉中。

结果

刘备方面成功占领汉中后，于六月派孟达由秭归攻房陵，杀死太守蒯祺。后再命刘封由汉中顺沔水而下，率孟达军攻打上庸，太守申耽投降，对益州加强控制。刘备亦在同年七月进位为汉中王，与魏王曹操抗衡。
攻取汉中是刘备生涯成就的最高峰，不仅仅因为汉中是极重要的战略要地，也因为以军事力量从正面击败曹操让刘备的声威如日中天，重振汉室似乎指日可待。
曹操方面，因怕撤军以后，刘备会乘机攻打武都，于是命雍州刺史张既到武都领五万多氐人迁徙到扶风郡和天水郡一带。

评价

曹操方面，虽然失去汉中重要战略据点，但是大约40万居民与大量资源转进到魏国境内。
第一次迁徙，益州之战之后，大约有20万巴郡地区居民和7万武都地区居民大量迁往魏国长安三辅地区。
第二次迁徙，曹操进攻占据汉中的张鲁，不久张鲁遂投降。张鲁率领族人与教民大约5万人迁往魏国京兆地区。
第三次迁徙，汉中之战后，丞相长史杜袭得知定军山一役夏侯渊战败身亡．强制将汉中8万居民紧急迁往洛阳与邺城，并将大量粮草与资源与武器转进魏国扶风地区，并且焚毁汉中大量民房与破坏大量田地，来不及撤退的粮草也一并烧毁。
刘备方面，虽然得到汉中重要战略据点，为日后诸葛亮北伐打下重要基地。但由于汉中大量地区都已是赤地千里、十室九空状态，大量人口和资源严重匮乏情况下，造成短期无法北伐曹魏。
之后刘备任命魏延为汉中太守兼任督汉中镇远将军、魏延则是将梓潼与成都总共约10万户居民迁往汉中地区，并且大量开垦荒地种植粮食．军队则是进行军屯，以便解决军队粮食问题，下令重修民房，建筑国防工事、修补城墙、修筑栈道。