Джеймс Бонд выполняет задание в Стамбуле, спасая жёсткий диск со списком агентов британской разведки, которые внедрены в крупнейшие террористические организации мира. Во время схватки на поезде с наёмником Патрисом, завладевшим диском, напарница Бонда Ив Манипенни (Наоми Харрис) по приказу М пытается убить Патриса, но попадает в Бонда. Он падает с моста и тонет в озере. В MI6 его считают погибшим.
Через некоторое время MI6 узнают об утечке информации. В интернете начинают появляться имена агентов разведки. Хакеры, выставляющие имена в интернет, обещают сообщать каждую неделю 5 новых имен. Во время встречи М (Джуди Денч) и Гарета Мэллори (Рэйф Файнс) — главы Объединенного разведывательного комитета, Гарет ставит под сомнение её компетентность и предлагает почетную отставку. М отказывается, давая понять, что должна перед уходом привести дела в порядок. Сразу после встречи в штаб-квартире MI6 организован взрыв, который привёл к многочисленным жертвам среди сотрудников разведки. Внезапно в Англию возвращается Бонд, на самом деле выживший после выстрела Ив. Анализ ситуации показывает, что, вероятнее всего, за террористическими актами стоит бывший сотрудник MI6. Бонд проходит заново проверку и экзамен на допуск к разведывательной работе. Он знакомится с новым Q и получает специальный пистолет и радиопеленгатор[4]. Бонда направляют в Шанхай, где он выслеживает Патриса и убивает его. От Патриса след ведёт к давнему знакомому М — кибертеррористу Тьяго Родригесу (Хавьер Бардем), тоже бывшему когда-то агентом с агентурным именем Рауль Силва.
После успешной операции в Макао и на острове в Южно-Китайском море Силву удаётся задержать и доставить в Лондон. В ходе задержания Силва намекает Бонду о том, что М не бережёт своих агентов и его самого подставили ради выполнения важной операции, а себя и Бонда сравнивает с крысобоями. Однако преступнику удаётся бежать прямо из штаб-квартиры MI6 и уйти по подземным ходам и линиям метро под городом. Преследуя его, Бонд понимает — Силва постоянно опережает его, благодаря тому, что контролирует компьютерную сеть британской разведки. Всё, вплоть до сдачи в плен, это элементы плана. Силва пытается осуществить покушение на жизнь М, в момент, когда она даёт показания парламентскому комитету, завершающиеся крылатой фразой лорда Теннисона: «Бороться и искать, найти и не сдаваться». Бонд в перестрелке спасает жизнь своего начальника и увозит М в родовое поместье Бондов в Шотландии — особняк Скайфолл. Силве намеренно оставляют след в компьютерной сети MI6 — где можно искать его жертву. В поместье Бондов Джеймс встречает лесничего Кинкейда (Альберт Финни), давнего друга своих родителей. Вместе с ним Бонд и М готовятся дать отпор банде Силвы. Несмотря на нехватку оружия и взрывчатых веществ, в ходе боя им удаётся успешно противостоять боевикам Силвы. В перестрелке М получает ранение. Затем появляется сам Рауль на вертолёте AW101. М и Кинкейд покидают особняк через старый подземный ход. Бонд взрывает особняк, успев покинуть его через подземный ход. В результате этого практически все люди Силвы убиты, а вертолёт уничтожен. Раненый и обессиленный, антигерой догоняет М, собираясь её убить. В последний момент появляется Бонд и убивает Силву, метнув нож ему в спину. Через несколько минут М умирает у него на руках от полученных ранений.
Манипенни решает не возвращаться агентом «в поле» и переходит на офисную работу. Новым начальником MI6 назначен Гарет Мэллори. Бонд получает новое задание под грифом «Top Secret».