228年12月(『三国志』曹真伝によると229年の春)、諸葛亮は漢中より出撃し、曹真の予測通り陳倉道を北上し陳倉城を包囲した。雍州に駐屯していた曹真は将軍費曜を派遣した。さらに洛陽では曹叡が張郃を召しだし3万の兵を与えて援軍とした。曹叡は張郃の到着が遅れたため陳倉が既に陥落しているのではないかと心配したが、張郃は陳倉城の防衛の堅さと蜀軍は食料をあまり携帯してきていないことを指摘して、援軍到着前に諸葛亮が撤退することを予測する一方、朝夜の強行で漢中南鄭まで進軍した。果たして以前からの備えがあった為、蜀軍は食料が尽き兵を引いた。以上が『三国志』明帝紀、曹真伝、張郃伝に見える経過である。
『三国志』では曹真の先見性が強調される一方、『三国志』に注釈として用いられた『魏略』では郝昭の武功が強調されている。諸葛亮が陳倉に攻め寄せると郝昭の同郷である靳祥を派遣して何度も降伏を呼びかけたが、郝昭は自身は必死の決意で事に当たっている事を述べ、これを帰らせた。数千程度のわずかな軍隊で諸葛亮の軍勢を寄せ付けず、頑健に防衛した。諸葛亮はまず雲梯(梯子車)・衝車(破城槌)を用いたが郝昭は火矢と石臼でこれを破壊した。次に井闌(攻城櫓)を使って城中に矢を射掛けさせた。これには城内に防御用の塀を作って防いだ。さらに地下に坑道を掘って城裏に出ようと試みるも、郝昭は城から横穴を掘ってこれを妨害した。20日余り郝昭はよく防衛して陳倉城はなかなか落城しなかった。そして結果的に諸葛亮は食料が尽きたので陳倉攻撃を諦め、蜀に撤退した。
諸葛亮が撤退すると魏の将軍王双は騎兵を率いて追撃するも蜀軍の反撃を受け敗死した(『三国志』諸葛亮伝)。
この後に郝昭は都に召され曹叡から労をねぎらわれて列侯に封じられた。さらに大きな地位に就けようとしたが、彼はすぐに病死してしまった。曹真はこの戦役の功績により領邑を二千九百戸に加増され、翌年には都に召されて大司馬に昇進した。張郃も洛陽に帰還し征西車騎将軍に昇進した。
三国志研究家の渡邉義浩は陳倉の戦いと後述の武都・陰平攻略までの間が短すぎること、蜀軍の携行した食糧が20日余り分と少なく、これでは陳倉を落としても先に進むことができないことから、この陳倉攻撃は武都、陰平を制圧するための陽動であったという見解を示している[1]。