Два года спустя Джон Макклейн (Брюс Уиллис) ждет свою жену Холли (Бонни Беделиа) в Вашингтонском международном аэропорту имени Даллеса. В баре аэропорта Макклейн замечает двух мужчин в военной форме с пакетом и пистолетом, поэтому он следует за ними в зону багажа, где начинается перестрелка. Он обнаруживает, что один из этих людей, которых он застрелил, является наемником, которого считают мертвым, он становится подозрительным и сталкивается с капитаном полиции аэропорта Кармине Лоренцо (Деннис Франц), но капитан выгоняет его из офиса. Тем временем группа наемников во главе с бывшим полковником армии Стюартом (Уильям Сэдлер) создала свою базу в церкви неподалеку, чтобы спасти генерала Рамона Эсперанса (Франко Неро) от экстрадиции по обвинению в незаконном обороте наркотиков. После захвата контроля над аэропортом требуйте план побега из страны. Макклейн узнает о заговоре и понимает, что Холли находится на борту одного из самолетов, который не может приземлиться, и у него не хватает топлива, чтобы приземлиться в другом аэропорту. Он находит Марвина (Том Бауэр), уборщика аэропорта, и просит его помочь получить доступ к аэропорту. Люди Стюарта повсюду в аэропорту, одетые как служащие, и сеют ужас и беспредел в попытках полиции спасти пассажиров самолетов. Макклейн стреляет в нескольких наемников, но Стюарт наказывает его, когда он приказывает самолету разбиться, убивает 320 человек и заманивает Макклейна в ловушку по плану, который должен взорваться. Едва избежав смерти, они с помощью Барнса находят убежище. После перестрелки с наемниками Макклейн понимает, что майор Грант (Джон Амос) со спецназом работает с террористами. Зная, что он может доверять только себе, Макклейн начинает миссию, чтобы победить наемников и спасти свою жену и пассажиров в самолете.