Der Film beginnt mit dem Joker und seiner Clownsbande, die eine Mafiabank ausrauben. Die anderen Clowns erschießen sich gegenseitig, damit es weniger Leute gibt und sie mehr Geld pro Person bekommen können. Der Bankmanager holt seine Schrotflinte heraus und erschießt einen von ihnen. Der Joker nimmt seine Maske ab, tötet den letzten Clown und lässt das ganze Geld für sich selbst übrig. Dann fährt er in einem Schulbus davon.
Der kriminelle Mob in der Stadt ist sehr wütend auf den Joker, weil er die Bank ausgeraubt hat. Der Joker kommt zu ihnen und sagt, er wolle Batman töten. Währenddessen versucht der Bezirksstaatsanwalt von Gotham-Stadt, Harvey Dent, den Mob einzudämmen, indem er das Geld ausfindig macht. Ein Geschäftsmann namens Lau erfährt davon, holt das Geld vorher ab und reist nach Hongkong, damit er nicht gefasst werden kann. Batman, dessen richtiger Name Bruce Wayne ist, fliegt selbst dorthin, entführt ihn und bringt ihn zurück nach Gotham City.
Der Joker sagt, er will, dass Batman seine Maske abnimmt und der Welt zeigt, wer er ist, und dass Menschen sterben werden, wenn er es nicht tut. Kommissar Loeb stirbt, weil er Säure in seinen Drink getrunken hat, und der Richter, der bei den Mafiaprozessen anwesend war, wird getötet. Der Joker heuert daraufhin einige Männer an, um Polizeibeamte zu entführen und ihnen ihre Uniformen wegzunehmen. Bei Loebs Beerdigung versuchen die Männer des Jokers, den Bürgermeister zu erschießen. Der Polizeibeamte James Gordon greift den Bürgermeister an und wird erschossen und offenbar getötet.
Dent beruft daraufhin eine Pressekonferenz ein, um die Menschen dort zu fragen, ob er Batman enthüllen sollte. Nachdem sie ja gesagt haben, sagt Dent, dass er Batman ist, und lässt ihn von der Polizei verhaften. Sie setzen ihn auf einen Lastwagen, um ihn ins Gefängnis zu bringen. Der Joker und seine Männer fahren einen Lastwagen, der den Lastwagen, in dem Dent fährt, schwer beschädigt. Der echte Batman kommt herein und versucht, Dent zu retten, ruiniert aber seinen motorradähnlichen Batpod, als der Joker dort steht, da Batman die Regel hat, dass er niemanden tötet. Gordon, der seinen Tod vorgetäuscht haben soll, verhaftet den Joker.
Im Gefängnis befragt Batman den Joker. Der Joker verrät schließlich, dass seine Männer Rachel Dawes, Batmans alte Jugendfreundin und Dents Freundin, und Dent gefangen genommen haben. Er hat sie in weit entfernte Lagerhäuser gesteckt, so dass Batman die beiden nicht selbst retten kann. Sie sind in der Nähe von Bomben, die explodieren und sie töten werden. Der Joker sagt Batman, wo sich die beiden Personen befinden. Batman geht, um Dawes zu retten, während Gordon und seine Männer gehen, um Dent zu retten. Als Batman jedoch Rachels Standort erreicht, sieht er nur Dent, weil der Joker die Adressen vertauscht hat. Batman holt Dent heraus, aber die Bombe explodiert und Dent vernarbt sein halbes Gesicht. Gordon kommt zu spät, um Dawes zu retten.
Der Joker kommt aus dem Gefängnis. Er erhält seinen Anruf und wählt ein Handy, das mit einer Bombe verkabelt ist, die das Polizeirevier in die Luft jagt. Danach besucht er das Krankenhaus, in dem sich Dent aufhält. Dent wird wegen des Todes von Dawes in den Wahnsinn getrieben. Der Joker befreit Dent und fordert ihn auf, Rache zu nehmen. Dent geht herum und wirft Münzen und entscheidet, ob er sie töten oder am Leben lassen will. Er beginnt, die verschiedenen Polizisten zu verfolgen, die dem Joker Informationen zugespielt haben, damit er Dawes entführen und töten kann.
Der Joker verkündet dann, dass die Stadt ihm gehört. Die Verantwortlichen beladen zwei Fähren mit Menschen, um sie aus der Stadt zu bringen. Der Joker hat beide Boote mit Sprengstoff verkabelt und jedem Boot den Zünder gegeben. Er sagt, dass er beide Boote um Mitternacht in die Luft jagen wird, wenn das eine Boot das andere nicht in die Luft jagt.
Batman findet den Joker in einem verlassenen Gebäude. Er setzt ein Sonarsystem (von Lucius Fox) ein, um die Männer des Jokers zu besiegen und hindert ihn daran, beide Fähren zu zerstören. Dann lässt er den Joker hängen. Der Joker ist sehr beeindruckt und stellt fest, dass Batman nicht korrumpiert werden kann, um seine eigene Regel zu brechen. Ein SWAT-Team nimmt dann den Joker gefangen.
Am Ende des Films findet Batman heraus, dass Dent Gordons Familie entführt hat. Als Batman eintrifft, wirft Dent seine Münze um, um über ihr Schicksal zu entscheiden. Bevor er das Ergebnis seines nächsten Münzwurfs sehen kann, greift Batman Dent am Rand des Gebäudes an und lässt den Vigilanten in den Tod stürzen. Da Dent tot ist, sagt Gordon, wenn sich herumspricht, dass Dent all diese Menschen getötet hat, wäre seine ganze Arbeit verloren. Batman bietet an, die Schuld für alle Morde auf sich zu nehmen. Gordon, der ursprünglich dagegen war, stimmt dem zu. Er vernichtet das Bat-Signal und befiehlt der Polizei, Batman zur Strecke zu bringen. Batman verschwindet in der Nacht, während Gordons Sohn nicht versteht, warum Batman gejagt werden muss. Doch Gordon erklärt, "weil er es ertragen kann". Weil er kein Held ist", erklärt Gordon. Er ist ein stiller Wächter; ein wachsamer Beschützer; ein Dunkler Ritter".