Капитан-лейтенант Эдвин Т. Лейтон (Патрик Уилсон) встречается с адмиралом Исороку Ямамото (Эцуши Тоёкама) после обеда с представителями ВМС Японии. Ямамото рассказывает Лейтону, как Япония стремится стать мировой державой на том же уровне, что и США и Китай, но США поставляют только ограниченное количество нефти. Он обещает Лэйтону, что если их поставки будут скомпрометированы, японцы будут вынуждены принять решительные меры.
Четыре года спустя, 7 декабря 1941 года, бушует Вторая мировая война, Япония вторглась в Китай, а Гитлер захватил Европу. До этого момента США оставались нейтральными. На расстоянии чуть более тысячи миль от Перл-Харбора пилот Дик Бест (Эд Скрейн) летит во время рутинных упражнений с другими пилотами, закончившихся резкой посадкой на борт USS Enterprise. Он должен остаться и работать со своим начальником Уэйдом МакКласки (Люк Эванс).
На авианосце USS Arizona лейтенант Рой Пирс (Александр Людвиг) готовится к посещению церкви с новичками. Несколько мгновений спустя прилетают японские дирижабли и начинают стрелять по Перл-Харбору. Бомбят корабли, летчиков выстреливают в небо. Жена Беста Энн (Мэнди Мур) и дочь Барбара (Мэдисон Рукема) замечают нападение со своего заднего двора. Лейтон получает предупреждение о нападении и присоединяется к своим товарищам-офицерам. Пирс помогает молодым людям перейти на более безопасную лодку, а сам остается и пытается дать отпор. МакКласки собирает своих людей, чтобы подготовиться к битве, теперь, когда США официально участвуют во Второй мировой войне. Именно тогда «Аризона» взрывается от нескольких попаданий японских самолетов, убивая почти всех на борту.
После окончания атаки тела извлекаются из воды. Бест идет на опознание тела Пирса, поскольку он был его соседом по комнате и старым другом. Поскольку тело Пирса сожжено до неузнаваемости, Бест может идентифицировать его только по классному кольцу. Позже Бест присоединяется к своим сослуживцам в баре, чтобы выпить за память Пирса. Между тем, Лейтон сообщает адмиралу Киммелю, что, хотя атака нанесла серьезный ущерб, могло быть и хуже. А именно, хранилища мазута на базе остались нетронутыми: если бы они были атакованы и разрушены, эта потеря могла бы нанести вред Тихоокеанскому флоту США сама по себе, уничтожив его главный заправочный пункт в центре Тихого океана и вынудив его отступить на западное побережье Соединенных Штатов.
В Японии Ямамото узнает, что атака спровоцировала США. Он встречается с контр-адмиралом Тамоном Ямагути (Таданобу Асано), надеясь, что вице-адмирал Чуичи Нагумо (Дзюн Кунимара) уничтожит нефтебазы США, но мужчины продолжают работают над своим следующим шагом, который должен пойти вслед за авиаперевозчиками США.
Адмирал Честер Нимиц (Вуди Харрельсон) прибывает в Вашингтон, чтобы быть назначенным новым командующим Тихоокеанским флотом США, который сильно пострадал в результате атаки на Перл-Харбор. Позже он встречает Лейтона, обсуждая его неспособность предупредить начальство вовремя до нападения. Нимиц твердо уверен, что он поможет вести людей в их следующем бою, начиная с отправки их на вторжение на Маршалловы острова.
Люди МакКласки летят на острова, а люди Уильяма «Быка» Холси (Деннис Куэйд) сражаются с японцами с моря. Завязывается бой, американские пилоты стреляют по японским кораблям. Машинисту по имени Бруно Гайдо (Ник Джонас) удается успешно сбить японский самолет в океан, за что его продвигает Холси.
Позже, подполковник Джеймс Дулиттл (Аарон Экхарт) прибывает, когда люди направляются в Японию, чтобы предоставить бомбардировщики с целью нанести удар по Токио. Они начинают воздушные налеты на Японию. Дулиттл оказывается на оккупированной японцами территории в Китае. Убедившись в том, что он американский военный летчик, китайские гражданские лица и партизаны поздравляют его с нанесением удара по Японии. Японские самолеты обстреливают деревню, где находится Дулиттл, убивая несколько мирных жителей. Тем временем адмирал Ямамото разочарован тем, что допустил такую наглую атаку, но его настроение поднялось, узнав, что инцидент убедил встревоженное японское правительство согласиться с его планом по захвату Мидуэй.
Лейтон сообщает Нимицу, что аналитик криптографии Джозеф Рошфор (Бреннан Браун) получил сообщение, указывающее на то, что японцы движутся к Коралловому морю, нацелившись на то, что называется «AF». Американцы тоже двигаются в этом направлении. Хэлси продвигает МакКласки, чтобы он возглавил пилотов, а Бест становится шкипером. Лейтон считает, что вопреки мнению Вашингтона о том, что японцы нацелены на место в южной части Тихого океана, Лейтон считает, что «AF» - это код для Мидуэя, и они планируют атаковать там в течение нескольких недель. Лейтон приводит Нимица на личную встречу с Рошфором, чтобы подтвердить свои заявления. Нимиц приказывает им попытаться убедить Вашингтон этой информацией. Делать, Лейтон тайно организовывает базу на Мидуэй для передачи некодированного радиосообщения о том, что их системы очистки воды вышли из строя. Разумеется, дешифровщики Лейтона перехватывают закодированное на японском языке сообщение о том, что у AF проблемы с водой, и Лейтон бодро передает это четкое подтверждение цели Японии Нимицу.
Бест начинает обучать новичков летать. Как оказалось, условия для взлета с авианосца оказываются опасно плохими, и он с трудом поднимается в воздух. К сожалению, предупреждение Беста прервать больше боевых вылетов до тех пор, пока авианосец не будет перемещен, прозвучало слишком поздно и другой пилот приземлился в воде, погибнув, когда корабль пролетел над самолетом, несмотря на все усилия рулевого, чтобы избежать этого. Позже той ночью Бест выражает Энн свои горести и сомнения.
Нимиц приказывает USS Hornet и Enterprise покинуть Коралловое море и требует, чтобы Йорктаун, который был сильно поврежден, был готов к бою в течение 72 часов. Мужчины продолжают готовиться и тренироваться, опасаясь предстоящей битвы. Однако прибытие авианосца «Йорктаун» поднимает им настроение и готовится к предстоящим действиям.
Утром 4 июня 1942 года японцы начали воздушную атаку на Мидуэй. Режиссер Джон Форд (Джеффри Блейк) бегает по сцене со своей командой, чтобы снять отличные кадры для своего следующего проекта, несмотря на огонь вокруг него. Американцы бросаются в бой. МакКласки приказывает своим людям следовать за японцами, пока их эсминец возвращается к основному флоту за подкреплением. США запускают торпеду по японскому линкору, но промахиваются. Тем временем Нагумо и Ямагути замышляют нанести еще один удар по авиаперевозчикам. Пилоты продолжают бомбить японские линкоры, сильно уничтожая их атташе. В середине битвы Гайдо и еще один солдат находят японцы в океане и берут на борт. После того, как Гайдо оскорбил их, его выбросили за борт и потопили с якорем.
Японцы нанесли ответный удар и разрушили Йорктаун. Бесту сообщили, что его эскадрилья потеряла много людей и что остался один японский авианосец, поэтому он собирает всех людей, которых он может, и уничтожает его, что успешно сделано. После потери авианосцев адмирал Ямамото, болезненно осознавая, что американцы, очевидно, знали о своих планах и ожидали их все это время, приказывает своему флоту отступить, чтобы не рисковать новыми жертвами. Вашингтон узнает о капитуляции японцев, и они празднуют свою победу. Ямагути и Нагумо остаются и уходят вместе со своим кораблем, когда его бомбят.
Солдаты возвращаются домой с боя. Бест, поблагодарив Лейтона за его превосходную разведывательную работу, которая помогла сделать эту победу возможной, воссоединяется с Энн, сообщая ей, что он больше не может летать, поскольку врачи сказали ему, что он вдыхал едкие пары. Она просто счастлива, что он дома, живым и невредимым.
Существует множество текстов о судьбах американских и японских мужчин, а также о признании того, что 250 000 китайцев были убиты японской армией за то, что они помогли бежать рейдерам Дулиттла, а также в качестве посвящения всем тем, кто отдал свои жизни.