244年3月、曹爽は都督雍涼二州諸軍事の夏侯玄・雍州刺史の郭淮らを伴い、歩兵・騎兵あわせて10万余りの軍を率いて漢中に侵攻を開始した。また、司馬昭も夏侯玄の副将として参軍した。
このとき、漢中の守備兵は3万に満たず、主力は後方の涪にあったため、諸将は大いに慌てた。ある者が、関城(漢中城)を棄てて後退し、漢城・楽城を固守して援軍を待つべきだと主張した。漢中防衛の指揮を執っていた鎮北大将軍の王平は、一時的といえども関城が奪われてしまうのは非常に危険であること、涪城からの援軍が間に合わずに漢城・楽城が落ちてしまうともう後がない事などを憂慮してこれを退けた。左護軍の劉敏も、漢中では未だ人民が野におり穀物も放置されたままであるから、平地に敵を引き入れる事はこれらを彼らのほしいままにさせる事になると考え、王平の意見に同調した。王平はあえて軍を前進させ、魏軍の進軍経路である駱谷道の麓の興勢山へ劉敏と杜祺を派遣して、陣地を固守して援軍を待つ作戦を取った。王平は劉敏に命じ、軍勢の数を魏軍に錯覚させるために百里余りにわたって多数の旗幟を盛んに立てさせた。王平自身は後方で支援に当たり、もし魏の別動隊が黄金谷を通ってきた場合、王平自身が兵を分けて迎撃できるように備えた。
244年4月、王平の予想通り駱谷道を通ってきた魏軍は、隘路に立てこもった蜀軍により進軍を阻まれ、一切先に進めなくなった。また、魏軍は物資補給のため氐・羌族を動員したが、険しい地形に阻まれて少なからず犠牲者が出てしまい、大軍を維持するための補給が滞ってしまった。魏軍が足止めを食らっているうちに涪城から蜀軍、成都から大将軍費禕の軍が到着したため、蜀の陣はより強固なものとなり、長期戦になった。この時、蜀将王林は司馬昭の陣地に夜襲を掛けたが失敗に終わっている。
攻勢が長期に渡り、これ以上は無益であると判断した楊偉は曹爽に撤退を進言し、主戦派である鄧颺・李勝等と対立した。楊偉は「鄧颺と李勝はいずれ国を滅ぼします。今のうちに処刑するべきです」と言ったため、曹爽は不快になった。また、司馬昭も状況の危険性を指摘して夏侯玄に撤退を進言した。
244年5月、曹爽はついに侵攻を諦め、軍を纏めて撤退を始めた。費禕は魏軍が撤退するのを確認すると魏軍を攻撃し、退路を遮断しようとした。曹爽はこの攻撃に苦しみ被害を出し、輸送用の牛馬もほとんどを失うほどだったが、いち早く味方の軍を脱出させた郭淮の奮戦もあり苦戦の末に撤退を完了した。