ieutenant Danny Roman (Samuel L. Jackson), a top Chicago Police Department hostage negotiator, is approached by colleague Nate Roenick (Paul Guilfoyle) who warns him that large sums of money are being embezzled from the department's disability fund, for which Danny is a board member, and members of their own unit are involved. Nate claims to have an informant whom he refuses to name. When Danny goes to meet with him again he finds Nate murdered seconds before other police arrive, pinning him as the prime suspect.
Things only get worse for Danny when Internal Affairs investigator Terence Niebaum (J.T. Walsh), whom Nate's informant suspected of involvement in the embezzlement, is assigned to investigate the murder. Niebaum discovers that Nate was killed with a gun from a case Danny had worked. He and other investigators search Danny's house the following morning and claim to have found papers for an offshore bank account with a deposit equal to one of the amounts of money embezzled. Danny is made to surrender his gun and badge and hardly anyone believes his protests of innocence. Facing the possibility of serious charges within a day, Danny storms into Niebaum's office and questions Niebaum about any involvement with the fund and who set him up. When Niebaum refuses to answer, Danny takes Niebaum, his administrative assistant Maggie (Siobhan Fallon), police commander Grant Frost (Ron Rifkin), and two-bit con man Rudy Timmons (Paul Giamatti) as hostages.
With the building evacuated and placed under siege by police (including his own unit) and the FBI, Danny issues his conditions, which include finding Nate's informant and summoning police Lt. Chris Sabian (Kevin Spacey), another top negotiator. Danny wants Sabian because he is from another side of the city and therefore unconnected to the pension fund matter, has a reputation for negotiating as long as possible