公元215年,曹操亲自率军南下进攻盘踞汉中的张鲁势力,张鲁败退逃进大巴山里,不久即宣布投降,汉中为曹操所有。
面对曹操的进攻,张鲁的抵抗并不坚决,一开始就想投降。张鲁是五斗米道(入道者要交五斗米,故称)的头领,算道教的一支。而曹操也尊崇道教,之前对待天师道(也算道教的一支)的黄巾军时就很宽容,从不斩尽杀绝,而是以战促降。所以青州百万黄巾部众全部归降曹操。
张鲁愿降但张鲁的弟弟张卫更想割据一方,他阻止张鲁投降,于是,亲自率军守卫汉中门户阳平关。阳平关本身就地势险要,易守难攻,张卫又依靠地势筑城十多里,陡峭异常。曹军攻城艰难,城里又乱箭齐发,所以伤亡惨重。曹操就想了个主意,假装知难而退,骗张卫放松警惕后再进攻。
传闻有个机缘巧合使战势一下偏向曹军。夏侯惇遵照曹操命令率部撤退,但因为是夜里,先头部队迷了路,竟误打误撞地闯进张卫设在城外的一处军营。张卫以为曹军偷袭,顿时大乱,率众逃跑,先头部队趁势占领了张卫营寨,然后驰马回告夏侯惇。曹操原本的计划是等完成撤退后,待张卫有松懈之状时再进攻,但这个突发情况太有利了,于是临时改变主意,全面进攻张卫军。张卫军阵脚已乱,只得弃关逃跑。曹军占领了阳平关。
张鲁撤出南郑前,将库存粮食全部封存留给了曹军。曹操进入南郑后,见到封存的府库,颇为感动,派人到山中宣慰招降,张鲁正式归顺。
