It is June in Gotham City, and Johnny Viti, nephew of Carmine "The Roman" Falcone, is getting married on the hottest day of the year. The Roman rules over an intricate crime family which in turn rules over Gotham. However, the Falcone mob is in desperate need of a means to launder their ill-gotten gains, and the Roman sees the Gotham City Bank as a likely source. To that end, the Roman has used his influence on several members of the bank's board of directors, including bank president Richard Daniel, to persuade them to accept his family's business. Carmine takes advantage of the occasion of his nephew's wedding to similarly convince Bruce Wayne, but Bruce is not swayed and leaves in a huff. The Roman confides in his bodyguard Milos that he is disappointed at Wayne's refusal, but that the deal still has enough votes to get through.
Bruce listens in on the conversation from the hallway until he is discovered by Alberto Falcone, the "good son" who shows Bruce the door and eyes him menacingly as he goes. Bruce is eager to leave and pursue his regular night activities, until he meets up with Selina Kyle. Selina seductively convinces Bruce to stay, and their dancing attracts the attention of Carla Viti, mother of the groom and sister to the Roman. Carla is in turn being watched over by the Roman, spying from his office and ruminating on his less-than-smooth relationship with his sister. When Alberto informs Carmine about Bruce listening at the door, Carmine tells him to stay out of the family business. Meanwhile Harvey Dent, district attorney of Gotham City, has been in the basement parking garage of the Roman's home, copying down the license plate numbers of various cars. But his actions have not gone unnoticed, and the Roman's goons come and give him a beating, warning him to lay off for his own sake. Luckily Bruce and Selina soon arrive, on their way home for the evening, and help him to his feet. Harvey brushes himself off and curtly walks away. Although Selina asks Bruce if he has further plans for the evening, Bruce claims he is tired and they part company.
Harvey meets up with Captain Jim Gordon of the Gotham City Police later that night and the two discuss possible means of bringing the Roman down, including involving the Batman. Similarly, Bruce and Selina meet again in the Roman's penthouse, this time in their costumed guises of Batman and Catwoman. Their presence quickly attracts the presence of the Roman's guards, but they manage to escape under a cloud of smoke and a barrage of bullets. The Roman, furious over this invasion of his privacy and at being taunted by his chief rival Sal Maroni over the break-in, puts a million dollar bounty on both of their heads. Batman chases Catwoman through the city but she eludes him even as she dodges his questions regarding her motivations against the Roman. Batman loses her and gives up the chase to answer a Bat-signal sent out by Harvey and Jim, who discuss the mutual strains put on their marriages by long hours at work while they await Batman's arrival. When Batman appears, the three discuss the lengths they will go to bring the Roman down. The three enter a pact (Batman however agreeing rather reluctantly) to bend the rules if necessary but never break them. Batman then disappears into darkness, but he leaves behind for Harvey and Jim the Roman's ledger, an incriminating piece of evidence Batman stole from the safe in the Roman's penthouse.
Soon, Bruce is in a meeting of the board of Gotham City Bank, very vocally protesting the position of the other board members in favor of accepting the Falcones' money. When he proves unable to sway them, Bruce storms out, but that evening Batman pays a visit to Richard Daniel, the bank president, warning him to keep the Falcone money out. Daniel subsequently resigns from his position and Bruce steps in. In August Falcone meets with his family and, enraged over Daniel's betrayal, orders his nephew Johnny to come home from his honeymoon as soon as possible to take care of the problem. In September Johnny Viti kills Richard Daniel, gunning him down as he is on his way home from a movie. Jim and Harvey both receive the news at home later that night.
On the day of Halloween, Johnny Viti is shot twice in the head by an unknown assailant while taking a bath. The perpetrator leaves behind the murder weapon, a .22 caliber pistol with the nipple of a baby bottle used as a crude silencer, as well as a jack-o-lantern. That night Harvey, Batman, and Jim discuss the murder, and Harvey lets it be known that he couldn't care less about the death of a mafia hitman. The three discuss the particulars of the murder and toss about possible suspects, when Batman notices that their conversation is being eavesdropped upon. Catwoman, listening in on their discussion from the rooftop, offers to help Batman hit the Roman where it hurts the most: his money. Catwoman's information leads Batman and Harvey to a warehouse on Gotham Harbor, where they discover that the Roman has stockpiled over twenty million dollars. Harvey contemplates stealing some of it, but Batman puts a curb on such thoughts. Instead they together set fire to the warehouse and destroy the money. Harvey cheerfully returns home to help his wife Gilda give out candy to trick-or-treaters. But as he is rummaging through his mail, a bomb hidden inside a package goes off and blows the Dent house sky high, with Harvey and Gilda barely surviving. For months afterward, the killings continue.On New Year's Eve, the scheming Joker intends to release his gas on Gotham Square at midnight, killing the crowd and hopefully Holiday. To that end the Joker has hijacked a plane and killed the flight crew. Batman arrives just as the Joker is taking off and hitches onto the plane. As Batman fights with the Joker in mid-air, Harvey Dent is working late on the Holiday case. Just as he is leaving, his new assistant Vernon comes in with new information on the Roman case. He has searched old police files and discovered a connection between Carmine Falcone and Bruce Wayne On Carmine's yacht in Gotham Harbor, the Roman is talking with Maroni during the New Year's party Carmine is hosting. Sal says that the Holiday killings have been bad for business and that they should put aside their differences to put an end to it. But Carmine subtly suggests that Maroni might be behind Holiday, using as evidence the fact that the hits have all been on members of the Falcone family. Then while Carmine is talking with Carla, she points out his tendency to surround himself with enemies. Carmine's response implies that she too could be counted among that number. Carla stomps off to go out on deck, just in time to see Alberto fall overboard, shot by Holiday.
Harvey arrives home, apologizing to Gilda for his lateness. She notes his hair is wet despite the fact that he was wearing a hat. Harvey enters the living room to find the Gordons there to celebrate New Year's with them, but Harvey heads off for the kitchen. Jim follows, leaving Gilda and Barbara to discuss the possibility of the Dents having children. Gilda however feels like it's a lost cause, since Harvey is always working. Barbara tells Gilda that business is a taboo subject that evening, but in the kitchen Harvey and Jim are discussing Harvey's recent discovery about Bruce Wayne.
And high above the city, just as the clock strikes midnight, Batman pummels the Joker and aims the plane toward the harbor. At the last possible moment he grabs the Joker and leaps to the nearby clock atop a skyscraper. The plane harmlessly splashes down into the water and Gotham is saved. The murders continue, and soon it is August 2, Falcone's birthday, and the date on which Maroni is going to trial to testify against Carmine Falcone, but before Harvey can leave home and head for court, Gilda stops him. She is disturbed by something she has found in the basement--a .22, just like one of Holiday’s guns. Harvey claims that it’s simply evidence he brought home from work, curtly ignoring Gilda’s surprise as he goes. Batman has other things on his mind than the trial, namely finding the Riddler, who Holiday let live on April Fool’s Day. Batman tracks him down at a small tavern and challenges his connection to Holiday. Riddler explains that the Roman hired him to find out who Holiday was but kicked him out when the solutions he gave were less than satisfactory. This information leads Batman to posit that maybe Riddler was left alive to spread the word that the Roman was looking for Holiday.
Carmine is similarly being disputed by Carla, who disapproves of the family hiring freaks like Poison Ivy and the Riddler, as they have done of late. Sofia interrupts the argument to lead Carmine away... to a surprise party in his honor. August 2 is the Roman’s birthday, after all. In Sal’s cell before the trial, Jim Gordon pats Maroni down to make sure he’s not carrying any weapons into the courtroom. But Vernon meets Sal at the door of the court to give him stomach medicine for his ulcer. Harvey is optimistic as Sal takes the stand that his testimony will bring organized crime in Gotham to a halt. Once under oath Maroni admits to killing two members of the Gazzo family, a mob operating in Metropolis. When Harvey inquires if the Roman ordered the hit, Sal fakes a coughing fit and reaches for his stomach medicine. It is not medicine but actually acid. Sal hurls it in Harvey’s face and he falls to the floor screaming. Harvey is rushed to the hospital but once there he stabs a doctor and escapes. And Carla Viti, investigating the coroner’s files on the Holiday victims, becomes one herself. As of Labor Day, Harvey Dent has been missing for a month since last issue’s incident in the courtroom. He has been hiding out in Gotham’s sewers where he crosses paths with Solomon Grundy. At first Grundy attacks him, but when Harvey begins reciting the nursery rhyme from which Grundy received his name, he stops and calms down.
Batman and Jim Gordon are baffled by the turn of events that have befallen Harvey. Jim has come to the conclusion, based on his discovery that Harvey possessed a .22, that Harvey is Holiday. Batman refuses to acknowledge it, but Jim needs proof otherwise before he believes Harvey is innocent. Jim needs to hear it from Harvey himself. Batman first searches at Falcone’s penthouse, asking Carmine if he knows where Harvey is. The Roman is enraged at Batman, accusing him of knowing that Dent was Holiday but standing aside while he killed, because criminals were the only victims. Batman departs and seeks out Catwoman, demanding to know why she is so interested in Falcone. As usual she runs away rather than reply. Batman confronts Gilda next about her husband’s whereabouts, inquiring about the .22 they found. Batman tells her that he found gun metal shavings on Harvey’s workbench, as if he had filed away the serial numbers there, but Gilda can provide no explanation. Batman finally ends up at Arkham Asylum, talking to Julian Day, the Calendar Man. Batman tells Day that they know Harvey is Holiday but not how to find him. Julian suggests that, it being a holiday, there is only one option as to the location of Holiday.
That night Jim Gordon, at Batman’s request, moves Sal Maroni to a new cell. Batman believes that Maroni is most likely destined to be Holiday’s next victim. Sure enough, Batman’s prediction comes true when Holiday surfaces to shoot Sal twice in the head during the prisoner transfer. Sal’s helmeted guard lunges toward Holiday, who shoots him multiple times in the chest and takes him down. Holiday trains his gun on Jim Gordon, who can only helplessly stare up into the face of the man about to kill him... Alberto Falcone. Sal’s helmeted bodyguard leaps up. It is Batman, who was protected from the .22 bullets by a kevlar vest. Batman pummels Alberto and almost kills him, but Jim stops him. Alberto is placed under arrest and jailed. A few days later Carmine comes to visit his son Alberto in jail and offers his assistance. He tells Alberto that he can get him out if he will plead guilty to Maroni’s murder alone and drop any notion of being “Holiday.” Alberto spurns Carmine, saying he felt slighted when Carmine sent him to Oxford and kept him out of the family business. He says that Gotham now belongs to the freaks, and he is one of them. On Halloween Jim and Barbara Gordon go to visit Gilda to check up on how she is managing alone. She is still left wondering where Harvey is and if he is even still alive. Meanwhile at Arkham there has been a breakout. All of the maniacs have been set free by a solitary figure who, after flipping a coin, decides to leave Calendar Man in his cell. Carmine is furious over Alberto’s unwillingness to accept his help, which has subsequently led to his impending execution for the Holiday murders. As he is ranting in the kitchen to Sofia, the lights cut out suddenly. The two explore the house with their guns drawn, finding guards dead all around. They burst into the Roman’s office to find all of the Arkham escapees there, along with Solomon Grundy, Catwoman, and their mysterious leader, who reveals himself to be Harvey.
Harvey is about to kill Carmine when Batman drops in, taking down the villains one by one under the cover of a smokescreen. The distraction of Batman fighting the villains has allowed Harvey the opportunity to grab Carmine, however, and he faces down Batman with a gun to Carmine’s head. When Batman appeals to Harvey to let Carmine go, Harvey tells him that his name is now Two-Face. Two-Face then flips his coin which lands scarred side up. Evil wins; Two-Face shoots Carmine twice in the head from point blank range. Sofia screams and rushes forward to attack Two-Face, but Catwoman stops her. The two wrestle and fall through a glass window. Outside Catwoman is able to grab onto a ledge, but Sofia plunges to the ground many stories below. Two-Face knocks Batman out and goes to take revenge upon Vernon for his part in Harvey’s disfigurement, giving Maroni the acid. Batman finds Vernon’s dead body later and, following the Bat-signal to the police department, then discovers Harvey on the roof ready to turn himself in. Harvey says that justice has been done now that he has killed the Roman. As Gordon slaps the cuffs on Harvey, Two-Face drops one final bombshell as they take him away; he tells them that there were TWO Holiday killers. Later Jim and Batman discuss what Harvey might have meant with his final statement, since Alberto has confessed to all the Holiday murders. Batman postulates that, since Harvey killed the Roman on Halloween, he was the second killer. Jim goes home to his wife Barbara and says that he has to keep fighting for the good of Gotham, despite what it has cost. Batman similarly says to himself that he must keep up his work, for the sake of the promise he made to his parents years ago on the night of their deaths.
And on Christmas Eve Gilda is packing up boxes for her move away from Gotham, but before she leaves, she takes a box down the basement furnace. She describes aloud to herself how she read in Harvey’s case files about the removal of the serial numbers of guns and how baby bottle nipples could be used as silencers. She then removes from the box a .22 pistol and drops it into the flames of the heater, along with a familiar-looking hat and coat. And she claims that she took it upon herself to start the Holiday killings, in an attempt to end the Roman’s hold on Gotham and thus lighten Harvey’s caseload so that they could have a child Her belief is that Harvey took up the killings on New Year’s Eve and that Alberto is lying to the police with his confession. She also says that she knows Harvey will eventually be alright and that they will reconcile, because she believes in him.