Argumento
La película comienza con el violento robo de uno de los bancos de la mafia por una banda de payasos, pero los asaltantes desconocen que entre ellos se encuentra el Joker (Heath Ledger), quien les había ordenado traicionarse y asesinarse unos a otros con la finalidad de repartir entre menos el botín. Finalmente el Joker asesina al último de sus cómplices y escapa en un autobús escolar. Mientras tanto, un grupo de imitadores de Batman intenta interrumpir una reunión de traficantes con El Espantapájaros (Cillian Murphy), cuando de pronto Batman (Christian Bale) aparece y aprehende a todos los delincuentes junto con los impostores, pero sufre lesiones que le conducen a diseñar un traje nuevo que le permita mayor movilidad.
Más tarde, Batman y el teniente James Gordon (Gary Oldman) contemplan la posibilidad de incluir al nuevo fiscal de distrito, Harvey Dent (Aaron Eckhart) en su plan para combatir a la mafia, como el héroe público que Batman no puede ser, al tiempo que Bruce descubre que Dent es el nuevo novio de Rachel Dawes (Maggie Gyllenhaal).
Mientras en las Empresas Wayne, Lucius Fox (Morgan Freeman) hace negocios con Lau (Chin Han), un prestigioso empresario chino pero el enorme éxito de su empresa hace sospechar hasta al mismo Bruce quien le pide a Fox cancelar el trato de asociación con él no sin antes revisar los libros de su empresa.
Mientras tanto, los jefes de la mafia se reúnen para discutir sobre qué harán con Batman, Gordon y el nuevo fiscal, Dent. En ese momento Lau les informa que la policía pretendía confiscar todo el dinero que guardaban en los bancos de la ciudad, pero que él se había anticipando al plan de Gordon, escondiéndolo. De pronto, la reunión es interrumpida por el Joker quien se ofrece para matar a Batman a cambio de la mitad de su dinero, los maleantes rechazan la oferta.
Lau ha huido a Hong Kong, y Bruce y Fox viajan hasta ahí, y Fox pide aplazar las negociaciones para evitar problemas con la justicia y le da a Bruce un nuevo traje hecho de placas de titanio y kevlar dándole mayor movilidad aunque con vulnerabilidad a disparos y armas cortopunzantes, una nueva capucha que le permite mover la cabeza y un prototipo original de Fox de un sistema de sonar integrado al traje. Lau es secuestrado por Batman y entregado a la policía de Gotham y mantenido en la Comisaría Central por el temor de lo que pudiera ocurrirle en la prisión. Lau negocia su testimonio en tanto pueda conservar el dinero de la mafia para si mismo. En este punto y con sus fondos en peligro, la mafia acepta contratar al Joker.
Después de tomar los recursos y el apoyo de la mafia, el primer movimiento del Joker es asesinar a uno de los imitadores de Batman y comunicar a Gotham que si Batman no se entrega a la policía, irá asesinando gente cada día siendo algunas de las víctimas el comisionado Loeb (Colin McFarlane) y la juez Surrillo (Nydia Rodriguez Terracina) quién anteriormente había condenado varios centenares de mafiosos gracias al testimonio de Lau. El Comisionado y la juez son asesinados por policías al servicio del Joker y Dent quien se encontraba en una fiesta ofrecida por Wayne sale ileso al ser salvado por su anfitrión. Ante la escalada de violencia y el intento de asesinato del Alcalde (Nestor Carbonell) durante el cual el Teniente Gordon es dado por muerto, Bruce Wayne decide entregarse y, como Batman, se lo comunica a Dent, pidiéndole que convoque una rueda de prensa.
Wayne acude a la rueda de prensa solo y ve cómo Dent anuncia que él es en realidad Batman para que el verdadero no caiga preso. Rachel le entrega una carta a Alfred (Michael Caine) pidiéndole que se la entregue a Bruce cuando "sea el momento". Rachel le suplica a Harvey que revele la verdad, pero este se niega; antes de que se lo lleven en un convoy, Harvey le da su moneda de la suerte a Rachel, quien se percata que es una moneda trucada, reforzando así el lema de Harvey de "fabrico mi suerte". El Joker, aparentemente muerde el anzuelo e intenta emboscar el convoy de la policía que transporta a Dent, pero Batman y Gordon intervienen y logran detener al Joker. Gordon es ascendido a Comisionado.
Ya una vez en la estación de policía, Batman interroga al Joker, que revela (no sin antes sacar a Batman de sus casillas) que Dawes y Dent han sido secuestrados y llevados a lugares opuestos de la ciudad y encerrados en almacenes repletos de explosivos. El objetivo del Joker es que Batman no pueda salvar a ambos y tenga que elegir. Batman decide tratar de salvar a Dawes, mientras que Gordon, recientemente ascendido a Comisionado va a rescatar a Dent. Sin embargo, el Joker les ha mentido intercambiando los lugares donde están cautivos de modo que Batman llega donde tiene encerrado a Dent, mientras que Gordon y la policía llegan donde se encuentra Dawes. Mientras tanto, con la ayuda de una bomba que él mismo ha encerrado en el cuerpo de otro preso, el Joker escapa con Lau. En esos momentos Batman llega a la ubicación donde se encuentra Dent a tiempo para salvarlo, pero Dent, quien tratando de escapar ha quedado empapado de gasolina sufre graves quemaduras en el lado izquierdo de su cara tras la explosión. Por otro lado, Gordon no llega a tiempo para salvar a Dawes, quien muere en la explosión tras haberle dicho a Dent vía telefónica que aceptaba casarse con él. Mientras Batman miraba los restos de donde murió, Alfred lee la carta de Rachel donde dice que se a a casar con Harvey ya que Bruce nunca dejará de ser Batman y tampoco pierda la fe en los demás. En el hospital, Dent es visitado por Gordon y este, presionado por el propio Harvey, y le revela que cuando estaba en Asuntos Internos era conocido como Dos Caras.
Mientras tanto un empleado de Empresas Wayne ha descubierto la identidad de Batman y aparece en televisión para revelar el secreto, hecho que es interrumpido por un mensaje del Joker en el que anuncia que si este empleado no es asesinado en menos de 60 minutos él volará alguno de los hospitales de la ciudad, lo que desata el caos. Los atentados sobre este empleado se suceden siendo el mismísimo Bruce Wayne el que acaba salvándole la vida mientras el Joker hace explotar el Hospital General de Gotham no sin antes empujar a Harvey Dent a la locura completa y convenciéndole para que empiece una implacable misión de venganza y "justicia" para castigar a los corruptos policías y mafiosos que los colocaron a Dawes y a él en los almacenes, así como de Batman y Gordon que al contrario que él no han perdido nada.
Harvey, ahora llamado Dos Caras empieza su particular venganza, matando a 5 personas entre ellas un policía corrupto, al jefe de la Mafia Salvatore Maroni (Eric Roberts) (aparentemente) y a su chófer. Eso sí, antes de matarles siempre deja que su moneda de la suerte de antaño decida el destino de sus víctimas.
Bruce crea una nueva máquina gracias a un consejo de Fox y crea cada teléfono de Gotham en un micrófono para encontrar al Joker, por lo que puede ver toda la ciudad, invadiendo la privacidad, pero Fox lo ve como algo malo. Finalmente Fox decide ayudarlo pero le dice que mientras esa máquina este en Wayne Enterprises, él renunciara. Batman le dice que cuando termine, que teclee su nombre.
Por su parte, el Joker sigue con su agenda e incendia a Lau junto con su mitad del dinero y anuncia al público que cualquier persona que quede en Gotham al anochecer estará sujeta a su ley. Con los puentes y túneles de la ciudad cerrados debido a amenazas de bomba, las autoridades comienzan la evacuación de personas en barco. Sin embargo esto forma parte también del plan maestro del Joker que ha colocado explosivos en dos de los transbordadores, uno lleno de convictos y otro de civiles, y que pretende que se maten entre ellos en un retorcido experimento social mediante el cual pretende demostrar que todo el mundo puede ser empujado al mal. La amenaza del Joker incluye además del hecho de que los pasajeros de un barco destruyan al otro, o él hará volar los dos a medianoche.
Mientras en ambas embarcaciones se discute sobre si hacer explotar al otro ferry o no, Batman localiza al Joker y le impide la destrucción de los transbordadores después de que éstos decidan no destruirse mutuamente. Ellos pelean, hasta que el Joker maneja a Batman pero luego lo arroja fuera del edificio y le salva la vida al Joker. Es entonces cuando el Joker reconoce a Batman como una persona verdaderamente incorruptible, cosa que no puede decirse de Dent, y que su locura se ha desatado sobre la ciudad. El equipo SWAT se hace cargo del Joker después de que éste reconozca que nunca matará a Batman porque le parece divertido, y que estarán haciendo «eso» por el resto de sus vidas. También le revela lo que hizo con Dent, Batman le pregunta que hizo, a lo que el Joker responde: «tomé al Caballero Blanco de la Ciudad y lo rebaje a nuestro nivel, no fue difícil, ya que la locura es como la gravedad, solo necesitas un empujón». Batman deja al Joker colgando del cable mientras llegan los policías.
En el clímax final, Batman va en busca de Harvey Dent que se encuentra en los restos del edificio donde murió Dawes y donde tiene a la familia de Gordon como rehenes. Este interrumpe la conversación entre Dos Caras y Gordon y empieza una discusión en la que Dent se lamenta de que sólo él ha perdido alguna cosa en esta guerra y Batman le dice que ha sido la víctima elegida por el Joker porque de los tres él era el mejor, el «Caballero Blanco» de Gotham que realmente podía ser el héroe que la ciudad necesita. Después de escuchar los argumentos, lo único que consigue Batman es que Dos Caras deje al azar si cada uno tiene que ser o no castigado. El primer lanzamiento decide la suerte de Batman y le dispara en el abdomen, luego se declara a sí mismo inocente y, antes de que pueda determinar el destino del hijo de Gordon, Batman se lanza contra él cayendo ambos desde el edificio al suelo; Dos Caras muere por la caída.
Batman habla con Gordon, convenciéndole de que, si se conocen los atroces crímenes de Dent, la ciudad entraría en crisis, al ver cómo su «caballero blanco» había sido corrompido por el mal, de que las personas sepan que el «héroe» Harvey Dent haya matadó a 5 personas entre ellos a 2 policías. Así, Batman asume los crímenes de Dos Caras para que el nombre de Dent quede limpio, y huye de la policía, usando una frase que Dent dijo casi al principio «Mueres siendo un héroe o vives lo suficiente para convertirte en un villano».
Gordon da un discurso en el funeral y destruye la bat-señal, iniciando una caceria humana contra Batman, Alfred quema la carta de Rachel y Lucius teclea su nombre, haciendo que la máquina se destruya y así evita renunciar. Batman huye en el Bat-pod, ante la mirada del hijo de Gordon, que pregunta por qué van a perseguir a Batman. Gordon responde: "Porque debemos atraparlo. Porque él es el héroe que se? merece la ciudad pero no el que necesitamos ahora. Asi que lo perseguiremos hasta el final de los dias. Porque él no es un héroe, es un guardián silencioso, un vigilante protector, un Caballero de la Noche".