Bruce Wayne returns home to Gotham City from training abroad in martial arts, man-hunting, and science for the past 12 years, and James Gordon moves to Gotham with his pregnant wife, Barbara, after a transfer from Chicago. Both are swiftly acquainted with the corruption and violence of Gotham City, with Gordon witnessing his partner Detective Flass assaulting a teen for fun.
On a surveillance mission in the seedy East End, a disguised Bruce is propositioned by teenaged prostitute Holly Robinson. He is drawn into a brawl with her pimp and is attacked by several prostitutes, including dominatrix Selina Kyle. One of the two reporting police officers shoot him without provocation and take him in their squad car, but a dazed and bleeding Bruce maneuvers his handcuffed hands in front of himself, and demands the police get out. The cops try to subdue him, but the ensuing struggle causes the police car to careen out of control, and flips. Bruce flees, but not before dragging the police to a safe distance. He reaches Wayne Manor barely alive and sits before his father’s bust, requesting guidance in his war on crime. A bat crashes through a window and settles on the bust, giving him inspiration.
Gordon works to rid corruption from the force, but on orders from Commissioner Gillian Loeb, several officers attack him, including Flass, who threatens Gordon’s pregnant wife. In revenge, Gordon tracks Flass down, beats and humiliates him, leaving him naked and handcuffed in the snow.
As Gordon becomes a minor celebrity for several brave acts, Batman strikes for the first time, attacking a group of thieves. Batman soon works up the ladder, even attacking Flass while he was accepting a bribe. After Batman interrupts a dinner party attended by many of Gotham’s corrupt politicians and crime bosses, including Carmine "The Roman" Falcone, Loeb orders Gordon to bring him in by any means necessary.
As Gordon tries in vain to catch him, Batman attacks Falcone, stripping him naked and tying him up in his bed after dumping his car in the river. Assistant district attorney Harvey Dent becomes Batman’s first ally, while Detective Sarah Essen and Gordon, after Essen suggested Bruce Wayne as a Batman suspect, witness Batman save an old woman from a runaway truck. Essen holds Batman at gunpoint, but Batman disarms her and flees to an abandoned building.
Claiming the building has been scheduled for demolition, Loeb orders a bomb dropped on it, forcing Batman into the fortified basement. A trigger-happy SWAT team led by Branden is sent in, whom Batman attempts to trap in the basement. They soon escape and, after tranquilizing Branden, Batman dodges as the rest open fire, barely managing to survive two bullet wounds. Enraged as the team’s careless gunfire injures several people outside, Batman beats the team into submission and, after using a device to attract the bats of his cave, escapes amid the chaos. Selina Kyle, after witnessing him in action, dons a costume of her own to begin the life as costumed thief Catwoman.
Gordon has a brief affair with Essen, while Batman intimidates a drug dealer for information. The dealer comes to Gordon to testify against Flass, who is brought up on charges. Loeb blackmails Gordon against pressing charges with proof of his affair. After bringing Barbara with him to interview Bruce Wayne, investigating his connection to Batman, Gordon confesses the affair to her.
Batman sneaks into Falcone’s manor, overhearing a plan against Gordon, but is interrupted when Catwoman, hoping to build a reputation after her robberies were pinned on Batman, attacks Falcone and his bodyguards, aided by Batman. Identifying Falcone’s plan as the morning comes, the uncostumed Bruce leaves to help. Gordon tries to rebuild the relationships with his family after Essen leaves Gotham. While leaving home, Gordon spots a motorcyclist enter his garage.
Suspicious, Gordon enters to see Johnny Vitti, Falcone’s nephew, and his thugs holding his family hostage. Despite the fact Johnny states that they will call with demands later, Gordon realizes if they let them go they will most likely kill his wife and son. So Gordon shoots the thugs and chases Vitti, who has fled with the baby. Bruce Wayne, on a motorcycle, also rushes to chase Vitti. Gordon blows out Vitti's car tire on a bridge and the two fight, with Gordon losing his glasses, before Vitti and James Gordon Jr. fall over the side. Bruce leaps over the railing and saves the baby. Gordon realizes that he is standing before an unmasked Batman, but says that he is "practically blind without [his] glasses," and lets Bruce go.
Gordon and his wife start attending marriage counseling, and he ends with a final monologue: "It turns out that Flass had more evidence than we could keep track of. If there's one good thing Flass ever did, it's put Loeb behind bars. Now, I have been promoted to captain. This guy just threatened to poison the reservoir. Calls himself 'The Joker'. Got a friend coming over to help. Should be here any minute." Gordon is standing on a rooftop in the final two sentences, implying that his "friend" is Batman.
- Bryan Cranston as James Gordon
- Ben McKenzie as Bruce Wayne / Batman
- Jon Polito as Gillian B. Loeb
- Alex Rocco as Carmine Falcone
- Katee Sackhoff as Detective Sarah Essen
- Fred Tatasciore as Arnold Flass/Johnny Viti
- Eliza Dushku as Selina Kyle / Catwoman
- Stephen Root as Lt. Branden
- Jeff Bennett as Alfred Pennyworth
- Grey DeLisle as Barbara Eileen Gordon/Vicki Vale
Differences between the film and comic
Although the film is faithful overall to the comic, it does have some differences:
- The scene after Bruce Wayne sends the blonde off is tweaked in the film to make explicit that he paid her to act like she slept with him solely to act as a cover for his activities as Batman, something that was implied but not directly stated in the original comic.
- Harvey Dent played a minor role in the film compared to the comic, with Gordon doing several things in the film that Dent originally did in the comic (such as send the IA after Flass, as well as omitting Dent's role in having Skeevers go on parole to have Batman target him easily.)
- Skeevers drug use is omitted completely to keep the rating down, whereas in the comic when Batman intimidates him at his apartment it is extra effective due to his increased paranoia.
- Loeb's resignation and subsequent replacement with Grogan were omitted in the film.
- Pratt, the second in command to Branden (renamed Brendon in the film), was cut from the film. As a consequence, stuff that Pratt was subject to in the comic (ie, being thrown through a wall by Batman) was done by Brendon instead.