Michael Banning (Gerard Butler) wants his old job back.
Once one of the elite Secret Service agents assigned to protect the first family, he is reassigned after one of their deaths. He especially misses the president's son Conner (Finley Jacobsen), a bright boy who loves learning all the secrets of the White House.
Eighteen months later, Banning is a treasury agent pushing papers behind a desk. He routinely asks his boss Lynne Jacobs (Angela Bassett) to be reinstated but is just as routinely denied.
It's business as usual when the South Korean prime minister arrives for a meeting with President Benjamin Asher (Aaron Eckhart). The Korean delegation includes a retired Secret Service agent (Dylan McDermott), who was also on duty the night of the accident.
A breach in the air space over the White House means President Asher, the South Korean prime minister and their retinues get moved to the bunker under the White House.
When Asher and company are safe inside, the real trouble erupts. An air attack starts at the same time a group of terrorists fight their way into the White House, killing everyone they find. In the bunker, the Korean security team starts killing people and ties up the president, vice president, the secretary of defense and others before contacting the Pentagon.
Kang Yeonsak (Rick Yune), is in the bunker as part of the Korean contingent. He is head of the terrorists and has a plan to destroy the U.S. He assassinates the prime minister in front of them.
A group of American military, Secret Service and government officials, including acting President Allan Trumbull (Morgan Freeman), are assembled in a Pentagon war room. They are the first to hear Kang's demands — withdraw all American troops, including the Seventh Fleet, from South Korea in one hour or people will die.