Young businesswoman Angela Bridges (Rachel Nichols) works in a downtown Manhattan office block and gets stuck working late on Christmas Eve, before leaving to attend a family party. On her way to her car in the second underground parking lot level (P2) beneath the office block, she discovers that her car won't start. After receiving some assistance from the security guard named Thomas (Wes Bentley) and turning down his offer to spend Christmas with him, she calls for a taxi and waits in the lobby. When the taxi arrives, she discovers she's locked in the lobby and runs back into the parking garage. The taxi left her and the lights soon shut down. Angela, guided by the light on her cell phone, wanders around the deserted parking lot. Thomas attacks Angela, drugs her with chloroform, and takes her to his office.
Later, Angela awakens in a haze inside Thomas' office, having been changed into a white dress and high-heels by Thomas and her foot chained to the table. Thomas tells Angela that he loves her despite her "many sins", having obsessively watched and recording Angela for some time through the CCTV in the office block. Despite Angela's pleas and threats, Thomas continues to hold her against her will, even forcing her to call her family and lie about an illness so that no one will come looking for her. Angela tries to escape, but can't due to Thomas' Rottweiler.
Taking Angela to another level of the parking lot, Thomas reveals her co-worker Jim Harper (Simon Reynolds) tied to an office chair. Thomas believes Jim is evil after he witnessed Jim drunkenly hitting on Angela at an office party. After viciously beating him with a flashlight, Thomas rams him into the wall with his car multiple times, killing him. Amidst the murder, Angela is able to escape after ditching her high heels.
While Thomas hides the evidence, Angela finds a safe place to hide and had to move her handcuffed hands underneath her bare feet to get them to the front. After using her cell phone to call 911, Angela rushes back to the office and steals some key cards. Angela runs to the elevators with Thomas right behind, and enters. While in the elevator, Angela calls for help from the panel of the elevator. She hears a voice that appears to be an operator but later turns out to be Thomas. Thomas flushes her out by flooding the elevator with a fire hose from a higher floor. Amidst the flooding the body of Karl Donson (Philip Akin), another security guard, drops down and hits Angela.
While hiding in the parking lot, Angela is tormented by Thomas who plays Elvis Presley's "Blue Christmas" over the intercom. She breaks open an emergency fire axe and begins to destroy the cameras one by one while making her way to his office, prepared to fight. Once entering, she finds a video playing of Thomas molesting her body while she was drugged. After a short fight, Thomas manages to knock Angela out.
Angela manages to escape after Thomas talks to two police officer that arrived to investigate. She ends up being pursued by Thomas' dog and manages to kill it after it injures her in the leg. She tries to escape by car, but is side-swiped by Thomas in another vehicle leading up to a game of chicken which Angela wins. However, in the heat of the chase, Angela flips the vehicle. Thomas opens the door, and Angela, feigning death, manages to stab Thomas in the eye and handcuff him to the car. Taking his Taser, she begins to leave, until Thomas desperately starts pleading, then calls her a "cunt." She uses the Taser to ignite a stream of gasoline leaking from the car. Thomas is engulfed in the flames and dies as the car explodes, which sets off the sprinklers. Angela (who is now wet, bloody, and injured) opens the garage gate and limps out into a cold and desolate Manhattan Christmas morning just as the fire department, paramedics, and police can be heard arriving. As the screen fades to black, a voice asks Angela if she needs help.
Who is Angela forced to lie to when she called them?
Her family