The film starts before Christmas at Camp David. President Benjamin Asher (Aaron Eckhart) is preparing to attend a fundraiser with his wife Margaret Asher (Ashley Judd), and son Connor (Finley Jacobsen). Also on the President's security detail is Secret Service agent Mike Banning (Gerard Butler). Banning is on good terms with the family, sparring with Benjamin in a private boxing ring, helping Margaret deciding on earrings to wear, and on friendly terms with Connor, whom Mike has been giving tips on being a good agent.
As the group leaves the Camp for the fundraiser, the snowfall outside begins to come down harder. While Ben and Margaret ride in the Presidential Limo, Connor is riding with Mike in an SUV following them. As they near a bridge over a river near the camp, the lead vehicle in the convoy hits a deer, causing a chain reaction of vehicular damage. One Secret Service SUV plows through the side of the bridge and crashes into the waters below. The Presidential Limo ends up skidding near the edge, balancing precariously.
Mike and several other agents rush to Ben and Margaret's aid, but Margaret's door is jammed, and the limo is still sliding over the edge. Several agents attempt to try and keep the vehicle from going over, but, as their attempts fail, Mike makes a split-second decision, and cuts Ben out of his seatbelt, saving him, but is unable to save Margaret, who goes over the edge in the limo.
The film then cuts to 18 months later. Since that time, Mike has taken a desk job with the US Treasury, still upset regarding the Camp David incident. He is unable to concentrate when his girlfriend attempts to tell him something, and he decides they should see a movie later that evening.
Mike meets with Secret Service Director Lynne Jacobs (Angela Bassett), who knows Mike is still distressed over his failure to rescue the President's wife. She assures him that he did what was necessary, and even the President knows that.
Asher is with Connor, who are preparing to go back to Camp David for a retreat, but Connor would rather go to the beach. Asher invites him to get some ice cream, but he is called in immediately. He meets with Secretary of Defense Ruth McMillan (Melissa Leo), Speaker of the House Allan Trumbull (Morgan Freeman), and Vice President Charles Rodriguez (Phil Austin) over their impending meeting with the Korean Prime Minister.
Prime Minister Lee (Keong Sim) and his aide, Kang Yeonsak (Rick Yune) arrive at the White House. Somewhere over West Virginia, a large AC-130 gunship comes in and shoots down two American jets. Asher is taken out of his meeting with Lee and moved somewhere safer as he is alerted of the situation. He asks for Connor, but he is nowhere to be found. The enemy plane begins to open fire on civilians before making its way toward Washington DC and finally toward the White House.
Mike sees the chaos from his office. He rushes into the streets to protect civilians while other troops attempt to shoot down the enemy plane. The shooters even manage to blow up oncoming missiles, but it is finally shot down, crashing its wing into the Washington Monument before finally crashing and exploding. The top of the monument collapses and falls, killing several tourists.
While Asher, McMillan, Rodriguez, and others are taken down to the bunker, Mike runs toward the White House, where he finds suicide bombers blowing open the front gates. Other Korean terrorists begin coming in, firing on the Secret Service, who return fire and manage to kill some of them.
Jacobs meets with General Clegg (Robert Forster) and others at the Pentagon where they are briefed on the situation, namely that the President is hiding in the bunker. Inside the bunker, however, Kang and several other terrorists, along with ex-Secret Service agent Dave Forbes (Dylan McDermott), take Asher and the others hostage.
Outside, Agent Roma (Cole Hauser) and other men continue fighting off the incoming terrorists. Roma declares "Olympus has fallen" to signify that the White House has been invaded. He manages to kill one goon before getting killed himself.
Trumbull comes into the Pentagon, where he is made acting president. Kang patches through to the Pentagon and begins by executing Prime Minister Lee in front of them. He orders the Americans to pull back the Seventh Fleet from Korea immediately.
In the bunker, Kang tells Asher this is retaliation for all the damage that was brought upon Korea by Americans. Forbes is in on it, since he is against Asher's policies. Asher headbutts him in response.
Mike discovers that the terrorists know about Connor and that they are looking for him. He manages to override Kang's security system and make it into the Oval Office, and patches through to the Pentagon. He gets in contact with Jacobs, who is surprised to hear from him, but she assures the other men that they can trust him. An assassin enters the room, but Mike takes him down and bludgeons him with a bust of Lincoln's head.
Kang interrogates Admiral Hoenig (James Ingersoll) for a code. He nearly slits his throat, but Asher tells Hoenig to give it up. The Pentagon learns that a Cerberus code has been activated. When Mike sends them a tattoo on the neck of the assassin he killed, he is informed of the Cerberus code, which would allow the terrorists to deactivate all of the country's nuclear weapons.
Mike continues moving forward to look for Connor. He finds the boy hiding in a room and safely gets him out just as more goons come in firing at them. Mike assures Connor that his father is going to be okay, and he gets him up a ventilation shaft to get out safely. Connor is rescued by some troops as Mike takes down other goons. He interrogates them, and they laugh in his face. He responds by stabbing one of them in the throat until he gets an answer. He lets Jacobs know Kang's name and to learn something about him.
Kang learns about Mike's presence from Forbes, and so he is sent to get rid of him. Forbes comes across Mike, who is still unaware of his deception. When he accidentally slips Kang's name, Mike realizes the truth and the two get into a fight. Forbes tries to stab him, but Mike gets the knife from him and stabs him. As he lies dying, Mike asks him why he did this. Forbes reveals it was because he lost his son. Mike has him tell Kang that he got Mike, which he does before Mike fatally stabs him in the throat.
Kang attempts to get another code from McMillan, who is utterly defiant. Kang starts to brutally assault her, but she still won't give up the code. When she is nearly beaten to death, Asher orders her to give up her code, which she does. The second Cerberus code is activated, and the Pentagon becomes aware of this. They also learn that Kang is a well-known terrorist who lost his mother to an American landmine and is very much infamous.
Mike manages to get through to Kang's security and taunts him. He lets Kang know that Connor is safe and that he is going to put his knife through his brain. Asher listens to all of this.
Several troops start flying into Washington to retaliate. Mike informs General Clegg that the terrorists possess Hydra Six - more powerful weapons than what the Americans have. Regardless, Clegg has the troops come in, but the terrorists shoot down one helicopter that crashes into the White House and causes a big explosion that severely damages the building.
Kang gets through to the Pentagon, and executes Vice President Rodriguez. He orders them to finally recall the Seventh Fleet and to have a helicopter filled up and ready to get them out of there by dawn. He pulls McMillan out and takes her outside.
As the news media are getting coverage of the situation, they inform viewers of South Korea's response to the situation, as well as getting footage of McMillan slowly stepping out into plain sight. With her back turned, Kang nearly shoots her, but Mike gets there first and opens fire, distracting Kang and allowing McMillan to run out and be rescued by troops.
Kang makes it back to the bunker and has several hostages, including Asher, with a bag over their heads, along with the terrorists, just as their requested helicopter is coming down. The Seventh Fleet is called out from Korea as well.
The hostages and terrorists get into the helicopter just as troops are locked on them. They are unable to fire, fearing they will hit the President. Just as the helicopter takes off, it explodes in mid-air and crashes to the ground. The Pentagon panics and they fear the worst - that Asher was killed in the explosion with everybody else. Mike is informed, but he knows that it doesn't add up, since Kang would not try and go out that way.
Sure enough, it was a diversion. Kang and the other remaining terrorists are holding Asher in the bunker and get the final Cerberus code out of him. Kang's true plan is revealed - he plans to detonate ALL of the nuclear weapons to completely obliterate the United States.
Mike is heading back down, but Clegg orders him to stand down. However, Clegg is put in his place by Trumbull, and Mike proceeds down to the bunker. Just as the terrorists are getting out, Mike shoots some of them. Asher knocks two of them down and struggles in a fight with Kang. He gets shot in the side as Mike attacks Kang. The two engage in hand-to-hand combat, with Kang nearly overpowering him. Kang taunts Mike and tells him he's failed again, but Mike gets the upper hand and takes Kang down. True to his word, he grabs his knife and sticks it in Kang's head, killing him.
Mike rushes into the bunker and informs the Pentagon that Asher is alive, but he needs to stop the detonation sequence as there is barely a minute left. Jacobs, Trumbull, and Clegg rush to give Mike the deactivation code, and, with seconds to spare, Mike successfully shuts down the detonation sequence, much to the relief of everybody else. Mike takes Asher outside, where he is reunited with Connor, and Mike is reunited with Leah.
Asher delivers a speech to the nation, commemorating those who were killed in the terrorist attack, but assures them that the attack gave them the hope and confidence to stand up and rise from fear to defend themselves. As he concludes, he walks off the stage and shakes Mike's hand. Mike stands proudly, knowing he has finally redeemed himself.