The film opens to a young woman (Gabriela Oltean) recklessly driving a BMW down a mountain highway. After being hit by two trucks, she dies (this whole ordeal is interspersed throughout the movie).
John Quincy Archibald (Denzel Washington) and his wife Denise (Kimberly Elise) witness their young son Michael (Daniel E. Smith) collapse at his baseball game. After a series of tests at the hospital, John is informed by Dr. Raymond Turner (James Woods) and Rebecca Payne (Anne Heche), a hospital administrator, that Michael has an enlarged heart and will need a transplant. However because the company he works for dropped John from full-time to part-time, his health insurance has been changed and the new policy does not cover the surgery, leaving them to raise 30% ($75,000) of the $250,000 in order to get their son's name on the donor list. The family tries to raise the money but are only able to come up with a third of the necessary payment. Eventually the hospital gets tired of waiting and decides to release Michael, leading Denise to tell John to "do something." Unwilling to let his child die, John walks into the hospital ER with a handgun, gathers hostages, and sets demands: his son's name on the recipient list as soon as possible. The hostage negotiator, Lt. Frank Grimes (Robert Duvall), stands down to let John cool off.
Meanwhile, John and the 11 hostages communicate and learn more about each other. They begin to understand John's situation and support him a little as he ensures each of them receive the treatment they came to the emergency room for. One of them, Miriam (Troy Beyer), is pregnant, and her husband Steve (Troy Winbush) is hoping that their first kid is healthy. A young hostage, Julie (Heather Wahlquist), has a broken arm, and she and her boyfriend Mitch (Shawn Hatosy) claim that a car crash caused it, but due to some holes in their story John and another hostage, Lester (Eddie Griffin), are able to conclude that the two are lying and that Mitch had actually beat Julie up.
After a while John agrees to release some hostages in return for his son's name being on the list an hour afterward. He releases Steve, Miriam and a hostage named Rosa (Martha Chaves) with her baby.
The Chicago Chief of Police, Gus Monroe (Ray Liotta), gives a SWAT unit permission to insert a sniper into the building via an air shaft. John is shot but ends up receiving only a minor wound, which is treated right away. After taking the shot, the sniper's leg falls through the ceiling tiles and the outraged John pulls him out of the air shaft and beats him up before using the bound SWAT policeman as a human shield as he steps outside to the sight of dozens of policemen pointing weapons at him as well as a large crowd gathered to support his cause. John demands that his son be brought to the emergency room. The police agree to his demand in exchange for the SWAT sniper.
Once his son arrives, John reveals to the hostages his intention to commit suicide so his heart can be used to save his son. He persuades Dr. Turner to perform the operation, and two of his hostages bear witness to a will stating his last request. John goes to say his last good-byes to Michael and goes to the operating room. He loads a single bullet into the gun and pulls the trigger but the safety is on. As he holds the gun to his own head a second time and prepares to end his life, his wife is told about a woman killed in a car crash, the one from the opening scene, who happens to have the same blood type as Michael, and has been flown to the hospital for organ recovery. She runs to the emergency room and stops John from shooting himself, and John allows the hostages to go free. Michael is given the life-saving operation and, after watching the procedure with Denise, John is taken into police custody. At his trial, all of the witnesses speak on his behalf. He is later acquitted of charges of attempted murder and armed criminal action but is found guilty of kidnapping. It is never revealed what his sentence for the crime will be but his lawyer is overheard saying that no judge will give him "more than three to five (years)" and that she will try and get it dropped to two.