祁山の戦い（きざんのたたかい）は、中国三国時代の231年2月〜6月に、蜀漢と魏の間で起きた祁山（現在の甘粛省南東部の山）周辺での戦い。蜀漢の諸葛亮が侵攻を行い、しばしば勝利を得るが兵糧不足により撤退する。

 前史 
魏は諸葛亮の侵攻を街亭の戦い・陳倉の戦いにおいて退けたが、229年には諸葛亮によって武都郡・陰平郡を奪われていた。それに反抗すべく230年に大挙して魏軍は蜀に侵攻するが大雨により失敗した。また、蜀軍は魏延・呉懿を涼州に派遣して郭淮らを撃破するなど戦果を得ていた。この機会に乗じ蜀軍は翌年231年春2月、大規模に軍を起こし、四度目の北伐を行う。この戦いでは、食糧輸送の事情を解消するために、木牛という新たな輸送車が使用された。

一方、諸葛亮と対峙していた魏の大司馬であった曹真は重病で療養中であり、231年春3月に逝去する。これに代わり、大将軍の司馬懿が総司令官として諸葛亮と対峙することになる。

 戦闘経過 
諸葛亮は祁山に出撃するとともに、魏の北方でしばしば魏と対峙していた鮮卑族の軻比能に使者を送り、もとの北地郡（現在の甘粛省東部と寧夏回族自治区および陝西省北西部にまたがる地域）石城県にまで進出し、諸葛亮に呼応させた。曹叡は荊州より司馬懿を詔勅で招き寄せて長安に駐留させ、張郃・郭淮・費曜・戴陵らを指揮下に置かせた。また、詔勅を下して牽招に軻比能討伐を命じた。

 前哨戦 
諸葛亮が祁山で魏軍の魏平・賈嗣を包囲すると、司馬懿は上邽に郭淮・費曜・戴陵へ4000の兵を授けて駐屯させ、自ら祁山に援軍として向かった。この際、張郃は雍・郿にも兵を送るべき（石城県にいる軻比能を警戒したものか）と言っているが、兵の拡散を嫌った司馬懿に拒否されている。諸葛亮は裏をかき、祁山の包囲をゆるめて上邦を攻撃、出撃してきた郭淮と費曜を打ち破って上邽周辺の麦を刈り取り、兵糧の充足を図った。司馬懿は急いで上邦へ引き返す。その際、諸葛亮と遭遇したが、司馬懿はすぐに兵を引き、要害に立てこもって出撃しようとしなかったので、戦うことが出来なかった。また、張郃らも略陽に到着したため、諸葛亮は祁山まで軍を引いた。一方、牽招らは軻比能討伐のために出撃したが、すでに砂漠の南まで軻比能は撤退していた。

 祁山の戦い 
司馬懿は諸葛亮を追って鹵城に到着した。張郃は「大軍の援軍が来たと祁山が知れば士気が上がるし、奇襲部隊を作って敵の背後を突き、積極的に戦おうとする姿勢を示すべきである。ただ前進するだけで戦う姿勢を見せないのでは民衆の失望を買う」と主張したが、司馬懿は諸葛亮の後を追いながらも積極的に戦う姿勢は見せず、祁山に到着しても山上の要害に立て籠もって塹壕を掘り、戦おうとしなかった。この結果、諸葛亮に包囲されている祁山の魏兵は、大軍が近くに至りながら救おうとせずに持久戦をする援軍に不満が高まり、魏平・賈嗣といった諸将は「公は虎のように蜀軍を恐れておられる。世間の笑い者になったらどうなさいますか」と述べた。この年隴右地方は不作であり、さらに諸葛亮に上邦の麦が刈りとられ、司馬懿は遠方の関中からの補給をしなければならなくなり、持久戦は困難となる中で司馬懿も魏平や賈嗣からの救援要請を無視できなかった。麾下の諸将は攻撃を乞うようになり、司馬懿はこれに大いに悩んだが、遂に出撃し、5月10日の日、司馬懿は諸葛亮を攻撃し、張郃は祁山南部に陣取る王平を攻撃した。諸葛亮は魏延・呉班・高翔を防御のため出撃させて司馬懿らの軍を大いに破り、首級を三千・鎧を五千・三千百の弩を獲得した。
司馬懿は本陣に撤退し、王平は張郃がやってきても守りを固めて動こうとしなかったため、張郃は有利に戦況を進められず撃退された。

 追撃戦 
勝利を収めた蜀軍だが、郭淮が周辺の羌族より物資を供出させ、欠乏した兵糧が関中から送られてくるまでの繋ぎとし、曹叡も使者を派遣して麦の監視を命じ、蜀軍の食料調達を警戒させ、魏の食料を充足させて援軍を次々に送り、司馬懿は持久戦を再開することができた。しばらく膠着状態が続いたが、長雨が続いたことから蜀軍に兵糧が続かなくなり、漢中にて食糧輸送を担当していた李厳は狐忠・成藩らを派遣してその旨を伝えさせた。そのため兵糧が続かないことを理解した諸葛亮は、夏6月に撤退を開始した。司馬懿が張郃に追撃するように命じたが、張郃は「軍法にも敵を囲む際には必ず一方を開けよとある。撤退する軍を追撃してはなりません」と反発した。しかし司馬懿は聞き容れず、止むを得ず張郃は出撃した。蜀軍は高所に弓と弩兵を伏兵として配置しており、張郃が追いつくと弓矢を乱射した。軍が弓矢の的になる中、張郃にも矢が右足に刺さり、これが重症となって戦死した（命中した個所は魏略では右腿、魏志では右膝となっている）。

『太平御覧』巻291に引く『漢表伝』によれば、蜀軍は樹木の木肌を削って「張郃此の樹下に死せん」と大書し、その両側に強弩数千を伏せておいた。追撃軍がこの樹を見つけて不審に思い、張郃自ら上記の文章を読んだ途端、弩兵が一斉射撃し張郃を射殺したという。

ただし、この内容は『史記』孫臏伝で、孫臏が龐涓を誘殺した際と全く同じものであり、物語を引き立たせるために過去の故事を引き写した可能性を指摘されている。

 後史 
張郃の戦死などいくつかの損失があったが、諸葛亮を撤退させたことにより、魏では7月6日に官位の引き上げが行われた。一方で、曹叡は蜀が平定されないうちに張郃が死んだことについて嘆いている。

蜀では李厳が撤退したことを諸葛亮の責任にしようと謀り、「食料は十分に足りていたはずなのになぜ帰ってこられたのですか」と述べた。さらに、劉禅にも上奏し「丞相（諸葛亮）は敵を誘うために撤退したふりをしているだけでございます」と嘘をついた。このため諸葛亮は李厳の書いた手紙を集め、その矛盾を追及した。李厳はこの追及に敵わず、罪を認め謝罪した。そのため諸葛亮は劉禅に上奏し、自身が李厳を任用してしまったことを謝罪しつつその罪を弾劾した。その結果、8月、李厳は免官となり庶民に降格され、梓潼郡へ流された。一方で息子の李豊には罪を問わず、手紙を送って父の汚名を返上すべく職務に励むよう諭している。

228年から231年まで、連年出撃を続けてきた蜀軍だったが、234年までは大規模な出撃は控えることになる。232年には流馬などの新しい輸送車を完成させて農耕と軍事訓練に励み、233年には斜谷口に米を運んで食糧倉庫を修理させ、次の北伐に備えることになった。

 異説 
『蜀記』にて西晋の郭沖が戦況について異説を述べている。この戦に置いて曹叡は長安に親征し、司馬懿に張郃らの諸軍を率いさせ、30万の兵をもって秘密裏に剣閣方面に出撃させようとした。蜀軍は当時祁山を囲っていたが、兵の休息を取らせるために兵の十分の二をかわるがわる下山させていた。そこに魏軍が出撃してきたが、当時の軍は兵の交代時期に当たっていたため、臨時の行動で兵の下山を一カ月先延ばしにするよう諸将から求められた。諸葛亮は「私は軍事の総指揮をとるにあたり、信義をもって根本としている。下山するものは既に旅支度をしており、その妻子は帰りを待っておる。困難な状況だからと言って、道義上中止するわけにはいかない」と述べた。これに兵士は感激し、「諸葛公の恩義には死しても報いれない」と言い、合戦の日には一人で10人を相手にするほど奮戦し、司馬懿を撃破して張郃を殺し、一度の戦闘で大勝を得たという。これについて裴松之は諸葛亮が祁山にいるのにそれを通り過ぎて剣閣に行くなどという計画があるはずが無いし、曹叡も長安に親征したなどという話は見当たらない。孫盛や習鑿歯と言った異動を求めてる人達も郭沖の言を取り上げていないし、事実との食い違いが多いと否定している。

また、唐の時代（648年）に成立した『晋書』では「諸葛亮は鹵城に駐屯し、川をせき止めて二重に防御を固めた。司馬懿が攻撃して防御を破ると、夜になって諸葛亮は逃亡した。司馬懿はこれを追撃して破り、捕虜と斬られた者とは数万にのぼった」と正反対とも言える経緯が書かれている。400年代以前の『三国志』や『華陽国志』などの諸書では蜀の撤退理由は兵糧不足となっており、また司馬懿との対峙も勝敗が書かれていないか、蜀軍が勝利した話となっている。また、追撃を担当したのが『三国志』・『魏略』・『太平御覧』・『華陽国志』等に書かれている張郃でなく司馬懿になっており、伏兵にあって指揮官が射殺された話は出てこず、司馬懿が大勝したことになっている。『晋書』はその正確性に批判的な評価が多く、後年編纂された『資治通鑑』などでも『晋書』の説は採用されず、『三国志』や『漢晋春秋』などの経緯が載せられている。