Bruce Wayne (Val Kilmer) returns home to Gotham City after 12 years abroad, training for his eventual one-man war on crime; Lieutenant James Gordon (Willem Dafoe) moves to Gotham with his pregnant wife, Barbara (Meryl Streep), after a transfer from Chicago. Both are swiftly acquainted with the corruption and violence of Gotham City, with Gordon witnessing his partner Detective Arnold Flass assaulting a teen for fun.
Within a week after his arrival, he tracks down Joe Chill (Rutger Hauer), the man who killed his parents fifteen years prior. He finds him alone in his apartment and holds him at gunpoint, intent on killing him in retribution. Chill breaks down, confessing his regret and shame, pleading that Bruce not pull the trigger, lest he feel the same shame.
As Bruce walks through the slums - which Chill’s apartments are part of - he sees a hooligan attacking a street hooker - Selina Kyle (Michelle Pfeiffer). Bruce approaches the hooligan, attempting to stop the violence, only for the man to attack him. Bruce strikes the hooligan to the ground, the allies of the hooligan jump Bruce, taking him off guard. He manages to defeat them but leaves the fight battered and bleeding.
Some days afterwards, Gordon pays a visit to Wayne Manor, informing Bruce of the death of Joe Chill - whose death had come from a gunshot wound to the temple - likely suicide. Gordon asks Bruce some questions in regard to his whereabouts on the night, finding the timing suspicious. As Gordon leaves, Bruce reflects on his feeling of guilt, wondering how much worse he would have felt if he had pulled the trigger.
During a party at Wayne Manor, Bruce meets Gotham Assistant District Attorney Harvey Dent (Michael Biehn), finding him to be a kindred spirit and a breath of fresh air amongst the guests. Bruce mingles with the other guests, while Harvey probes Alfred (Daniel Day-Lewis) for information about the host, whom he finds confusing - both humorously simple and impressively intelligent.
Alfred shows Bruce a hidden passage in the Wayne manor silver closet that leads to a secluded basement/cave. A montage of the two constructing a large computer, a changing room, an armouring station, and a makeshift area for the creation of a vehicle, that leads into an old tunnel that leads far into the nearby woods.
Gordon works to rid corruption from the force, but on orders from Commissioner Gillian Loeb, several masked officers attack him, including Flass, who threatens Gordon’s pregnant wife. Gordon tracks Flass down, beats him up, and leaves him naked and handcuffed in the snow.
Bruce and Alfred constructing a bullet proof suit of armour for Bruce, also outfitting him with an arcenal of weapons and tools for scaling buildings, as well overhauling a corvette stingray to be a bat-themed, lightning fast, armoured car.
As Gordon becomes a minor celebrity for his bravery on the job, Batman strikes for the first time, attacking a group of thieves and gaining experience. Batman soon works up the ladder, even attacking Flass while he was accepting a bribe. He gains a reputation of being a supernatural being and inhuman, due to his use of speed and darkness to conceal himself.
After Batman interrupts a dinner party attended by many of Gotham’s corrupt politicians and crime bosses, including Loeb and Carmine “The Roman” Falcone to threaten their criminal organization, 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.
Batman appears in Dents office, one night, handing him evidence to help bring down several smaller members of the Falcone crime family, as well as corrupt policemen. They are interrupted in their discussion by Gordon - who suspects Dent of being Batman. Dent conceals Batman from him, becoming the Bat’s first ally.
Detective Sarah Essen suggests Wayne as a Batman suspect and she and Gordon 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. Loeb fraudulently orders a bomb dropped on it, forcing Batman into the fortified basement. A SWAT team is sent in, led by trigger-happy Lieutenant Branden, whom Batman attempts to trap in the basement. Branden manages to climb out of the trap through a collapsed chimney and joins in the gun battle. Enraged as the team’s careless gunfire injures several people outside, Batman beats the team into submission but is wounded during the fighting. Using a signal device to attract the bats of his cave to distract the police and conceal himself, Batman escapes amid the chaos.
Gordon has a brief affair with Essen, while Batman intimidates a drug dealer for information. The dealer goes to Gordon to testify against Flass, who is brought up on charges. Loeb blackmails Gordon with proof of his affair against pressing charges. After taking Barbara with him to investigate Wayne’s connection to Batman, Gordon confesses the affair to her. Bruce avoids Gordon’s suspicions by appearing with a woman over and drinking, though he is actually faking all of it.
Batman sneaks into Falcone’s manor and overhears 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 un-costumed Bruce leaves to help Gordon.
Gordon tries to rebuild his relationship with his family after Essen leaves Gotham. While leaving home, Gordon spots a motorcyclist enter his garage. Suspicious, Gordon enters to see Falcone’s nephew Johnny Vitti and his thugs holding his family hostage. Gordon realizes if he lets them go, they will most likely kill his wife and son. Therefore, Gordon shoots the thugs and chases Vitti, who has fled with his baby son James Gordon Jr. 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 counselling. Loeb is arrested and put on trial. Falcone is in the hospital and will be heading to prison pretty soon when he heals, while Flass makes a deal with prosecutors to testify against him and Branden has been arrested and sent to jail. Gordon, meanwhile, is promoted to Commissioner. Gordon and Dent summon Batman with the Bat-Signal and waits on a rooftop for the Dark Knight to arrive.