2005年、東京都小笠原諸島硫黄島。戦跡の調査隊が、地下壕の地中に埋められていた鞄から数百通もの手紙を発見した。それは、61年前、この島で戦った兵士たちが、家族に宛てて書き残したものだった。
太平洋戦争の戦況が悪化しつつある1944年6月、小笠原方面最高指揮官・栗林忠道陸軍中将(渡辺謙)が硫黄島に降り立った。本土防衛の最後の砦とも言うべき硫黄島の命運は、栗林率いる小笠原兵団に託されていた。着任早々、従来一般的であった水際防衛作戦を否定し、内地持久戦による徹底抗戦に変更、また部下に対する理不尽な体罰を戒めた栗林に兵士たちは驚きの目を向ける。今までのどの指揮官とも違う男との出会いは、硫黄島での日々に絶望を感じていた応召兵・西郷陸軍一等兵(二宮和也)に、新たな希望の光を抱かせる。
栗林が水際防衛や飛行場確保に固執する海軍軍人らの反対や突き上げを抑える中、食料も水も満足にない過酷な状況で掘り進められる地下陣地。張り巡らせたこのトンネルこそ、アメリカ軍を迎え撃つ秘策だったのだ。
1945年2月19日、事前の砲爆撃を経て、ついにアメリカ軍が上陸を開始する。緒戦で海岸の砲台・トーチカはすぐに制圧され、摺鉢山も陥落する。谷田大尉ら摺鉢山の人員は現地指揮官の命令によって自決するが、持久戦を命じる栗林からの連絡を立ち聞きした西郷、そして清水洋一(加瀬亮)は自決せず、栗林の意図に従って北部の部隊に合流しようとする。
戦局が悪化する中、林少将(ケン・ケンセイ)は独断で反撃を行おうとする。この命令は栗林によって撤回されたが、前線に情報が行き渡らずに約1000名の将兵が戦死する。伊藤海軍大尉(中村獅童)も林少将の命に従い元山飛行場を奪還しようとし、出撃間近で西中佐に止められるが、伊藤は西を罵倒し指揮下の部隊を率いて陣地の外へ出る。自身の命令が行き渡らず将兵を死なせたことに憤慨する栗林の元に、大本営から無線が届く。友軍は硫黄島には送れない、最後まで大義を貫徹せよという、事実上の玉砕命令であった。
西率いる連隊の残余とともに栗林の元に撤退する途中、戦いに疲れ果てた西郷と清水はアメリカ軍への投降を決意し、清水が先に地下陣地から出ていく。清水はアメリカ兵への投降に成功するが、見張りのアメリカ兵が後送の手間を省くため、彼を無抵抗のまま銃殺してしまう。そして西も負傷して視力を失い、部下たちを先へ進ませるとひとり自決する。西郷は命からがら栗林の居る司令部に辿り着き、死を覚悟して妻に手紙を書く。
遂に栗林は自ら兵を率いて最後の総攻撃を敢行する。一方、栗林から機密書類の焼却を命じられた西郷は一人陣地に残っていた。翌朝、遅れて陣地から出た西郷は、被弾して倒れた栗林を見つける。栗林は「ここはまだ日本か」と西郷に問い、西郷の「日本であります」という言葉を聞いた後、かつてアメリカ駐在中に贈られた拳銃を使って自決を遂げる。栗林の遺体を埋葬した西郷はアメリカ兵たちに見付かり、大円匙を振り回して抵抗を試みるが、捕まって生還する。
再び現代、調査隊が西郷によって埋められた手紙を発見するシーンに戻り、映画は幕を下ろす。
The story of the battle of Iwo Jima between the United States and Imperial Japan during World War II, as told from the perspective of the Japanese who fought it.