黄权虽未迎到张鲁,却攻破了杜濩、朴胡诸军,收复了三巴地区。曹操听说三巴又失,派大将张郃率军复入巴中,开至宕渠蒙头、荡石(均在今四川渠县东北)。刘备派出张飞前去抵御。双方在宕渠对峙了五十多天,谁也吃不掉谁。后来张飞采取出奇制胜的策略,让手下和张郃继续对峙,自己却率领一万多精兵从另外一条路去截击敌军,一下子把张郃军截成两段。巴中多山,山道险峻狭窄,张郃军首尾不得相救,被打得七零八落。张郃丢掉马匹,进入山中,与手下十多人走小路才得以逃生,然后收拾残部退回南郑。
经过宕渠之战,曹军势力退回汉中,三巴地区复归刘备所有。
曹操虽占据了汉中,但却无意对益州大举用兵,他只是在三巴地区作一些尝试性的军事行动,稍有不利,便立即停止。在曹操看来,占领汉中的目的,不是为了进一步灭蜀,而是为了防止刘备抢先占有汉中,威逼关中。因此,曹操出兵汉中,是带有防御性的军事行动。但曹操内部有些人不明白曹操的心思,他们主张不仅要占领汉中,还要进而进兵益州。曹操的司空仓曹掾刘晔就说:
明公以步卒五千,将诛董卓,北破袁绍,南征刘表,九州百郡,十并其八,威震天下,势慴海外。今举汉中,蜀人望风,破胆失守,推此而前,蜀可传檄而定。刘备,人杰也,有度而迟,得蜀日浅,蜀人未恃也。今破汉中,蜀人震恐,其势自倾。以公之神明,因其倾而压之,无不克也。若小缓之,诸葛亮明于治而为相,关羽、张飞勇冠三军而为将,蜀民既定,据险守要,则不可犯矣,今不取,必为后忧。
……