张合在宕渠山上闻知张飞狂饮作乐,便连夜前往偷营。他见“张飞”端坐大帐,忙用枪刺,不料刺中的却是草人,张合急拨马出帐,张飞已到面前,合大惊,仓皇应战,不敌,拨马而逃。与此同时,他据守的蒙头、荡石两个山寨已被魏延、雷铜占领。
张合向曹洪求援不成,只得退守瓦口关。他用埋伏之计,诱杀了雷铜,张飞与魏延决定将计就计,由张飞出战张合,魏延杀散伏兵,放火烧之。张合大败,逃回瓦口关,坚守不出。张飞从百姓口中得知有一条小路可通瓦口关,他命魏延引兵从正面攻关,他亲率五百轻骑,由百姓带路,从梓潼山直上瓦口关背后。
张合前后受敌,急往小路而走,张飞在后紧追,山道狭窄,张合只得弃马步行,逃回南郑。曹洪命他攻打葭萌关。
正当刘备庆贺张飞智夺瓦口关时,葭萌关守将霍峻来书告急,孔明用激将法,使老将黄忠出战,严颜同往,他们合力杀退张合。黄忠用骄兵之计,一连收复三个营寨,还收缴了大批粮草、辎重和兵器,诱使曹将韩浩、夏侯尚孤军深入,并夺得曹军屯粮之地天荡山。张合逃往定军山,投奔夏侯渊。
刘备亲统大军十万,以诸葛亮为军师,张飞、赵云为先锋,取道葭萌关,征讨汉中。
南郑守将曹洪闻讯,星夜急往许都禀报曹操,操自领四十万大军前往南郑迎敌。
定军山是南郑屏障,又是曹军积聚粮草之地,刘备决定先取定军山。诸葛亮再激老将黄忠出战,派法正相助。
镇守定军山之魏将夏侯渊坚决不出战,法正定计,步步为营,诱其下山。黄忠率军逼到定军山下,并连夜夺取了定军山西面一座高山。法正又提出“以逸待劳”之计,让黄忠驻扎于半山,法正则在山顶观察动静,以旗为号。
夏侯渊见蜀军夺了对山,以俯视定军山之虚实,大怒。他不听张合劝阻,亲自率军围住对山,在山下大骂挑战。法正在山上举白旗,黄忠按兵不动。午时过后,魏军锐气已堕,纷纷下马休息,法正立即将白旗放倒,竖起红旗。养精蓄锐多时的黄忠提刀上马,杀下山去。夏侯渊未及上马相迎,宝刀已落,被黄忠连头带肩劈为两半,曹兵大败。黄忠乘胜夺了定军山,被封为镇西将军。
曹操亲统大军,为夏侯渊报仇,令张合将米仓山粮草移屯北山,以备军需。
诸葛亮闻报,派黄忠、赵云前往深入其境,烧其粮草,夺其辎重。行前,赵云与老将军约定:“以明日午时为期,如将军按时而还,云将按兵不动,若过午不还,云即引军接应。”
黄忠率军到粮仓,杀散守军,正要放火烧粮,张合兵到,曹操又令徐晃率一支人马赶来,将黄忠困在重围之中。赵云在营中看看午时已过,不见老将军回,即令副将张翼坚守营寨,自引三千人马前往接应。他横冲直撞,如入无人之地,救出了黄忠,杀回本寨。曹操见状大怒,亲自率军追赶,赵云早已安排弓弩手于寨外壕中埋伏,云大开寨门,匹马单枪,立于寨外。曹操追到蜀营,赵云巍然不动,曹操怕有埋伏,命军士退回,云把枪一招,壕中弓弩齐发,曹军败退,曹操弃了北山粮草,忙回南郑。
刘备闻报,称赞道:“子龙一身都是胆也!”从此号赵云为虎威将军。
刘备与曹操争夺汉中,孔明针对曹操多疑特点,采用疑兵之计。当曹操率军刚到汉水,孔明即命赵云领兵五百,伏于曹营附近,乘夜擂鼓吹角,使曹兵惊慌。操疑劫寨,出营却不见一人,刚要回营休息,号炮又响,使曹兵彻夜不安。一连三夜,曹操心怯,拔寨后退三十里。
孔明又请刘备率军亲渡汉水,背水结营,故意败退,操疑而不追,蜀军趁势掩杀,曹军大败,曹操退至阳平关。孔明再派张飞、魏延分兵两路去截曹兵粮道;命黄忠、赵云各领一军放火烧山。曹操惊惧,弃关而走,退兵斜谷。
曹操怕人谋害,常告诫左右:“孤梦中好杀人,孤睡熟之后,尔等切勿靠近。”一日,操白日于帐中入睡,被子落于地,近侍慌忙拾起被子,为操覆盖,曹操跃起,拔剑斩之,复上床睡觉。半晌后,操起床,假作吃惊,问道:“何人杀我近侍?”众人以实情报知,操很痛惜,命厚葬之。左右皆以为操果有梦中杀人之事,只有行军主簿杨修知其意,临葬时修对徐晃言道:“魏王非在梦中,此公乃在梦中也!”曹操知后甚恨杨修。