Май 1940 года. Немецкие войска стремительно продвигаются по Франции и окружают сотни тысяч солдат британских и союзных войск. Они отрезаны и прижаты к морю у небольшого французского города Дюнкерк. С трёх сторон — враг, с четвёртой — пролив Ла-Манш. Спасения, казалось бы, нет. Солдаты сидят на пляже, беззащитные мишени для немецких самолётов, и ждут чуда.
Фильм показывает эту драму с трёх точек зрения и в трёх временных отрезках.
На суше. Одна неделя. Мы видим молодых солдат, среди которых рядовой Томми. Они пытаются любым способом попасть на эвакуационное судно под постоянными бомбёжками и обстрелами. Очередь огромная, надежда тает с каждым часом.
На море. Один день. Из Англии через пролив на помощь идёт целая армада гражданских судов — рыбацких лодок, яхт, паромов. Правительство призвало всех, кто может, помочь. Одна из таких лодок под командованием мистера Доусона плывёт в Дюнкерк, чтобы забрать солдат прямо с пляжа под огнём.
В воздухе. Один час. Три истребителя Королевских ВВС, среди них пилот Фарриер, прикрывают эвакуацию с воздуха. У них мало топлива, но они должны сбивать немецкие бомбардировщики, которые атакуют и корабли, и людей на берегу.
Это не история о громких подвигах или генералах. Это история о выживании и простом мужестве. О панике на пляже, когда солдаты ждут своей очереди, а корабли тонут. О решимости гражданских моряков, которые, рискуя жизнью, плывут в самое пекло. О лётчиках, которые в тишине своих кабин сражаются, чтобы дать другим шанс.
Цель одна — перевезти как можно больше людей через пролив обратно в Англию. Операция «Динамо» стала невообразимой гонкой против времени. В итоге благодаря смелости, упорству и жертвам обычных людей было спасено более 330 000 солдат. Это не победа в обычном смысле, но это спасение, которое дало армии шанс воевать дальше. Фильм — это гимн тихому героизму и воле к жизни.