De criminelen van Gotham City zijn bang geworden, want Batman houdt de brave burgers van Gotham veilig. De film opent met een bende mannen met clownsmaskers die inbreken in de bank waar de maffia veel van haar geld bewaart. Het meesterbrein van de overval is iemand die de Joker heet. Aan het eind van de overval arriveert de Joker en stopt een granaat in de mond van de bankdirecteur.
Zich niet bewust van de aanwezigheid van de Joker in hun stad, werken Batman en de nieuwe officier van justitie, Harvey Dent, samen met luitenant Gordon om de laatste witwaspraktijken van de maffia voor eens en voor altijd uit de wereld te helpen. Ze geloven dat ze het witwassen en de misdaad in de stad definitief hebben gestopt, totdat de Joker opduikt om chaos te zaaien. Joker vermoordt een rechter, plaatst een bom in een ziekenhuis en blaast het op, en begint met het vermoorden van onschuldige mensen in Gotham een voor een totdat Batman zijn identiteit onthult.
Batman is vastbesloten om terug te vechten tegen de Joker. Een tijd lang lijkt hij de overhand te houden, totdat zijn beste vriendin Rachel, toevallig ook de vriendin van Harvey Dent, in het kruisvuur om het leven komt. Wanneer de helft van Harvey Dent’s gezicht verbrandt in een explosie, brengt de Joker hem over naar de duistere kant, en moedigt hem aan wraak te nemen voor Rachel’s dood. Harvey neemt een nieuwe naam aan, Two-Face, en Batman krijgt te maken met twee gekken terwijl de vernietiging van Gotham dreigt.
De Joker is duidelijk al geruime tijd bezig met het plannen van zijn overname van Gotham, en lijkt Batman bij elke stap minstens twee stappen voor te zijn. Nadat hij de hele stad Gotham heeft bedreigd, commandeert hij twee veerboten en vult er een met burgers en een met veroordeelde criminelen. Hij vult ook beide veerboten met explosieven. Hij geeft elke boot een master detonator die de andere veerboot zal laten ontploffen. Als niemand de andere boot voor middernacht laat ontploffen, zegt hij, zal hij beide boten opblazen. Batman slaagt er uiteindelijk in de kwade clown te overmeesteren en geen van de passagiers op de veerboten raakt gewond.
Harvey staat nog steeds aan de kant van de Joker, iets wat Batman zich niet realiseerde in zijn haast om de Joker zelf uit te schakelen. Terwijl Batman de confrontatie met de Joker aangaat, verneemt Gordon dat zijn familie gegijzeld is door Two-Face. Wanneer Gordon hen gaat redden, slaat Two-Face Gordon tegen de grond en grijpt vervolgens zijn zoontje Jimmy, die van plan is een munt op te gooien om het lot van de jongen bij toeval te bepalen. Plotseling komt Batman aan, beveelt hem te stoppen en zegt hem dat hij de verkeerde mensen de schuld geeft van Rachels dood. Two-Face gooit dan de munt op voor Batman. Het muntje valt met de vieze kant naar boven, dus schiet hij hem neer. Hij gooit het voor zichzelf op. Het landt met de schone kant naar boven. Dan gaat hij verder met zijn oorspronkelijke plan en gooit het op voor kleine Jimmy. In het laatste moment staat Batman op en tackelt Two-Face, waardoor hij hem over een richel slaat.
Batman betreurt het feit dat de Joker nog steeds heeft gewonnen, omdat hij Harvey Dent heeft gecorrumpeerd, hun alliantie voorgoed heeft verbroken, en een van de beste mensen in Gotham heeft vernietigd. Als de mensen van Gotham ooit ontdekken wat Two-Face heeft aangericht, zal de toekomst van Gotham in gevaar komen. Dus besluit Batman de schuld op zich te nemen voor de moorden die Dent als Two-Face heeft gepleegd, zodat de Joker niet kan winnen en de stad vredig zal blijven.
Gordon is te zien terwijl hij het Bat-symbool boven het MCU-gebouw vernielt en dan Batman begint te achtervolgen, die vlucht. Gordon vertelt zijn zoon dat hoewel Dent de held was die Gotham nodig had, Batman de held is die Gotham verdient. Er wordt een klopjacht op Batman geopend en hij gaat er in zijn Batpod vandoor. Gordon verklaart, “Hij is een stille beschermer. Een waakzame beschermer. Een Dark Knight.”