Batman has arguably the best-known rogues gallery among all of comic books. Of classic superheroes, only Spider-Man’s lineup of usual baddies comes close.
Those villains have been featured, many, many times across the Batman movies. Some of those have been memorable portrayals, one even Oscar-worthy. Others have been, well, the villain equivalent of Bat-nipples: slightly disturbing and ultimately pointless.
Naturally, that means we must do what every content site is compelled to do at times like this: Make a ranking. For the record, in my ranking, I only included modern Batman movies – that means from Burton’s Batman on up – and I also included only, you know, Batman movies or movies where he was at the very least sharing the lead. Hence, no Joker. I also considered combining instances of when we’ve seen two portrayals of the same character, but ultimately decided that since most of the portrayals have been so different, they would each stand alone.
17. Catwoman (‘The Dark Knight Rises’)
Apologies to Anne Hathaway but she gets last place on this list. Not because she was terrible in the role or because her role was sketchy, but because she was anything but a villain. Her redemption arc and turn toward being a hero rather than an antagonist happened fairly quickly and by the end of The Dark Knight Rises, she was fighting right alongside Batman to save Gotham. Can’t be a villain if you’re not actually a villain and that’s why she takes spot #17.
16. Bane (‘Batman & Robin’)
Until doing research for this article, I had literally forgotten the Batman & Robin version of Bane existed. I guess my brain had blocked out the memory.
15. Poison Ivy (‘Batman & Robin’)
I tried not to put two Batman & Robin villains in a row at the bottom of the list. I tried. I really, really tried. But while Uma Thurman had an iconic look for the film, her role was sadly underdeveloped and she was never respected as the legitimately great Batman villain she is. To this day, fans are still irked by Robin’s inexplicable infatuation with her.
14. Max Shreck (‘Batman Returns’)
You can virtually never go wrong with Christopher Walken in a role and that still holds true for his turn as Max Shreck in Batman Returns. But I put him as #14 on the list not for any fault with Walken’s abilities or the character, but simply because, in a sequel stacked with memorable villains, Shreck easily ranked third behind Catwoman and Penguin.
13. Mr. Freeze (‘Batman & Robin’)
Even as a teenager, I knew I was witnessing something truly off when I watched Batman & Robin. But Arnold Schwarzenegger’s sheer enthusiasm for hamming his way through some truly cringe-worthy lines made for some of the more entertaining scenes of the movie. With his cheesy delivery and over-the-top performance, Schwarzenegger seemed to understand exactly the movie they were making – even if no one else did.
12. Lex Luthor (‘Batman v Superman’)
Lex Luthor is, of course, traditionally one of Superman’s villains, but since he spent all of Batman v Superman antagonizing Bruce Wayne as much as Clark Kent, I’m including him. Jesse Eisenberg’s performance would have been, eh, just fine had he been playing a villain. But he wasn’t just playing a villain. He was playing Lex Luthor, and as Lex Luthor goes, this was about the worst characterization ever put on screen. Ten points for the attempt to do something different, minus ten for execution.
11. Harvey Dent/Two-Face (‘Batman Forever’)
When Tommy Lee Jones read the script for Batman Forever, he told producer Peter Macgregor-Scott, “I don’t get it,” and had to be convinced to take the role. He also famously didn’t get along with Jim Carrey, which the late director Joel Schumacher suggested might be because Jones wasn’t used to being upstaged and it’s nearly impossible not to be when you’re acting opposite Jim Carrey. It showed. Jones’ performance isn’t the worst in Batman movie history, but it’s certainly saying something that he was more manic than Jim Carrey playing a guy who dresses up in a lime-green unitard and bowler hat as his daywear.
10. Talia Al Ghul (‘The Dark Knight Rises’)
Marion Cotillard’s Talia Al Ghul is fine – she’s just not memorable. This isn’t the fault of Cotillard but simply that her character spends so much of the movie as Bruce’s love interest, Miranda, that the revelation she’s really Talia Al Ghul and her sudden heel turn into the true big bad of the movie doesn’t have quite the villainous impact it might have. And when you’re overshadowed by Tom Hardy doing a Weird Tom Hardy voice, it’s hard to truly stand out. Thus, she’s firmly in the middle of the pack.
9. Penguin (‘Batman Returns’)
Danny DeVito’s turn as Oswald Cobblepot/The Penguin is one of the more standout Batman villains ever put on screen from a visual standpoint. For a comic book movie, which back then was considered the domain of kids alone, he was absolutely grotesque, with black ichor dripping from his mouth and biting the heads off raw fish – it was a lot. So much so that the studio had a hard time even selling toys for the character. Still, in hindsight, Penguin’s arc just didn’t have a whole lot to it, which was to the detriment of his character. #JusticeforPenguin
8. Riddler (‘Batman Forever’)
There are few things in life as truly excellent as a performance in which Jim Carrey goes Peak ’90s Jim Carrey and 1995’s Batman Forever was extremely Peak ’90s Jim Carrey as hell. Fascinatingly, the role was originally written for Robin Williams but when Carrey ended up landing it, he decided to tone it down a bit – yes, that was the toned-down version. Still, even with Carrey leaning into the zaniness, you got the sense his Edward Nygma could truly run circles around Batman in the intellect department and that’s what made his role surprisingly more grounded than you might have expected.
7. Bane (‘The Dark Knight Rises’)
Look, we’ve said and written all we can possibly say on Al Gore’s internet about Tom Hardy’s Bane voice, the stuff of Christopher Nolan muffled mixing nightmares. Even when you could hear him, he was doing a whole thing with his voice, which is one of the reasons we unironically love Tom Hardy. But I’m putting him at #7 on the list because he’s the only villain Batman has ever faced in a movie that you truly believe could break the Bat and rip him apart with sheer brute force in a fight. That counts for something.
6. Scarecrow (‘The Dark Knight’ Trilogy)
The only villain to appear in all three of Christopher Nolan’s movies, Scarecrow holds a special spot. For starters, Nolan cast the hugely talented and exceptionally handsome Cillian Murphy to play the intellectual Dr. Jonathan Crane. His descent into madness as Scarecrow isn’t just a character being a little off. No no. Scarecrow is absolutely, completely, brain-went-bye-bye, 100% bat crap crazy, and Murphy’s increasingly unhinged performance in each movie, though his role is but a small one, is a throughline. Scarecrow reminds you that no matter what villain Batman is currently facing, there’s always one potentially worse waiting to bust out of Arkham.
5. Ra’s Al Ghul (‘Batman Begins’ & ‘The Dark Knight Rises’)
Ra’s Al Ghul is not crazy. He’s not particularly strong. He doesn’t have superpowers. But what he does have is a lot of money and infinite patience. He’s completely fine with playing the long game, which actually makes him one of Batman’s most formidable foes. You know he won’t jump the gun or make a mistake due to impatience, and a man willing to wait years to put his plan into motion is one both calculating and deeply, deeply determined to destroy everything Bruce Wayne loves. His calculating nature is terrifying, the spider that sits at the center of Nolan’s entire trilogy, pulling all the strings and villains together.
4. Harvey Dent/Two-Face (‘The Dark Knight’ Trilogy)
If Scarecrow was the chemical imbalance of Nolan’s Dark Knight trilogy and R’as Al Ghul was the brains, then Harvey Dent was the soul. In fact, it’s almost unfair to put him on a villains list as he spent so much time in the first movie and part of the second as Harvey Dent, idealistic Gotham City DA and the only man brave enough to square off against crime lords and stand up to the rampant corruption in the city. It’s what makes his tragic fall from grace and transformation into the mangled, embittered Two-Face all the more heartbreaking. Two-Face is what happens when you take an idealist and break them, rip out the thing in their soul that gives them hope. He is the ultimate symbol of how the corrosion of Gotham will eventually destroy the best of men, even if they start out as heroes.
3. Joker (‘Batman’)
For many of us, Jack Nicholson’s Joker is the first comic book villain we ever saw on screen. He’s certainly one of the most memorable. With the casting of Nicholson, Tim Burton signaled to the world that his Batman movie would be different than the campy heights it reached in the ’60s with the Adam West TV series. And Nicholson delivered. His Joker was unpredictable yet refined, unstable yet calculating, and Nicholson played him with a menacing, zany charm that was a perfect foil to Michael Keaton’s serious Bruce Wayne. Burton took a traditional comedian in Keaton and made him the straight man and the traditional straight man in Nicholson and made him the comedian. The role-reversal is one that still holds up to this day.
2. Catwoman (‘Batman Returns’)
There are few movie characters in history more visually stunning and iconic than Michelle Pfeiffer in skintight, stitched-together black PVC and claw-tipped gloves. She’s sleek, sexy, stunning. She’s also more. The role could have been one that Pfeiffer played merely as a vampy femme fatale, and while there is certainly that in her performance, Pfeiffer infused Selena Kyle with the vulnerable pathos of every forgotten person and Catwoman with the righteous anger of a woman scorned. Her dual nature between moving on from her past and seeking revenge tear her apart, the perfect foil for the equally tormented Bruce Wayne. She’s not a one-note villain simply consumed with a lust for power or world domination, but driven by the internalized fury of every woman trying to survive in a world where she’s been constantly undermined and used by men. Plus, she has some of the all-time great lines: “You poor guys. Always confusing your pistols with your privates.”
1. Joker (‘The Dark Knight’)
Come on. You knew he had to be #1. Heath Ledger’s turn as Joker won him a posthumous Oscar for Best Supporting Actor, and while posthumous awards are often handed out as a tribute rather than an earned award, Ledger deserved every bit of gold in that statue. His portrayal of the Joker as a wholly unpredictable agent of chaos is unparalleled. The movie might have been Batman in the title but it was really Joker’s movie; every time Ledger was on screen, you were transfixed. Occasionally, such a legendary performance fades after you’ve watched it a few times and see the strings. But Ledger’s performance holds up after countless viewings, so seemingly effortlessly did he inhabit the role. All due respect to Joaquin Phoenix’s excellent recent turn as Joker, but for an entire generation, Heath Ledger will always be the definitive portrayal of Batman’s archnemesis. He’s certainly mine.