建安二十二年,刘备决定出兵夺取汉中,由此刘备和曹操的汉中之战揭开帷幕。汉中之战初期蜀军屡战不利,雷铜、吴兰等人战死,陈式等被击败。七月,刘备亲自率军进逼阳平关,和夏侯渊、张郃相持。
建安二十四年一月,刘备率军南渡沔水,在定军山前依托山势下营,夏侯渊也率军出城扎营,两军在定军山一线对峙。刘备随即出兵攻打夜袭曹营,烧毁了外围的鹿角。夏侯渊命张郃去守东面的营寨,自己守南营。
由于蜀军攻势猛烈,张郃无法抵挡,夏侯渊于是分兵一半前去救援。刘备见夏侯渊这边兵力单薄,于是命黄忠出击攻打南营。夏侯渊无法抵挡,被蜀军杀死。曹操任命的益州刺史赵颙也死在乱军之中。张郃率败军退守阳平关。
此后曹操亲自赶往汉中来对付刘备,但是刘备据险而守,曹操无法突破,最终只能放弃汉中撤军。
有些人认为夏侯渊不应该放弃阳平关之险,贸然率军出战。不过定军山之战以后刘备并没有攻占阳平关。但是曹操率军赶来增援以后,却无法突破蜀军的防线,最后不得不撤军。
很显然,如果夏侯渊不出关,让蜀军从容在定军山一线修筑防线。那么等曹操率军赶来时,一样无法击败蜀军,还是要黯然收场。所以夏侯渊趁蜀军立足未稳,主动出击和蜀军争夺定军山一线并无不妥。
而在定军山之战中,夏侯渊也没有什么破解之法。夏侯渊分兵去救张郃确实给了刘备可乘之机。但是当时张郃已经难以抵挡蜀军攻势,如果夏侯渊按兵不动,那么刘备完全可以让黄忠去突击张郃,魏军还是一个败字。
所以刘备是依靠实力压死了夏侯渊,就夏侯渊来说没有什么破解之法。从根本上来说,这是曹操低谷了刘备夺取汉中的决心。他在抵达长安以后却没有及时派军增援夏侯渊,导致汉中兵力不足造成的。真要说犯错误,首先责任在曹操低估了蜀军的实力,并非在夏侯渊。