Top 10 Superhero Movie Villains!

Last Updated on August 3, 2021

A good superhero is only as good as his adversary. While we’ve had dozens and dozens of superhero movies over the last decade, the ones that stuck out are the ones with the really good villains. When you’ve got a great villain, the results are often classic (THE DARK KNIGHT). When the villain is a let down, you risk a major fan backlash, like what’s happening now with IRON MAN 3 (although not being very aware of the comics, I enjoyed Ben Kingsley’s jokey take on The Mandarin, although it seems like I’m in the extreme minority on this). The following is a list of what I consider the best superhero movie villains of all time, with some old favorites, a couple of new ones, and one of two really obscure choices. But don’t worry. No Mandarin.

1. Heath Ledger- The Joker- The Dark Knight

I’ve already written so much about Heath Ledger’s performance as The Joker in THE DARK KNIGHT over the years that I really have no idea what else to add. All I can say is that when he was announced to be taking over the part, many of us assumed he’d be doing a lame Jack Nicholson impersonation. Once the bank-heist IMAX prologue hit theaters (it was attached to I AM LEGEND) we all knew Ledger and Christopher Nolan were cooking up something special. If anything, Ledger’s tragic death gave the performance even more weight, and watching THE DARK KNIGHT now, it’s hard to imagine any actor ever attempting the role again.

2. Ian McKellen- Magneto- The X-Men Series

It seems unimaginable now, but back in 2000 when the first X-MEN hit theatres, comic book movies were considered dead as a door nail. While X-MEN is not without it’s flaws, Bryan Singer’s serious approach to the material set the standard for the comic book movies to follow, and his casting of Ian McKellen, before LORD OF THE RINGS made him a household name, was especially prescient. A classically trained English actor, putting McKellen and Patrick Stewart in this was akin to getting Alec Guinness to be in STAR WARS. It made you take the movie seriously. His Magneto is a complicated, often sympathetic villain (with Michael Fassbender’s initially heroic approach to the part in X-MEN: FIRST CLASS filling in a lot of the gaps in the character’s on-screen history), and even in a movie as bad as X-MEN: THE LAST STAND, McKellen still shines.

3. Samuel L. Jackson- Mr. Glass- Unbreakable

When I talk about superhero movies I always forget UNBREAKABLE. Maybe it’s not a “superhero” film in the traditional sense, but Bruce Willis’ indestructible hero is both super and a hero, so it fits. While nowadays he’s become a bit of a joke, back when UNBREAKABLE came out in 2000, M. Night Shyamalan was red-hot. To me, UNBREAKABLE is an even better film than THE SIXTH SENSE, with it’s devastating final revelation revealing Samuel L. Jackson’s formerly warm and sympathetic Elijah Price to be a self-styled super-villain, called Mr. Glass. This is really one of Jackson’s best performances, and it’s a real shame that Shyamalan never gave UNBREAKABLE the follow-up it cried out for.

4. Jack Nicholson- The Joker- Batman

Back in 1989, people said that Tim Burton should have named BATMAN, “Joker” for the way Jack Nicholson dominated the film, and helped make it the super-mega hit that dominated the famous summer of 1989 (one of the biggest blockbuster summers of all-time). Looking back, I find that for all it’s focus on The Joker, Michael Keaton still makes a really intriguing Caped Crusader. Still, it can’t be denied Nicholson owned the part for decades to come, to the extent that many of us thought Christopher Nolan was insane for even considering recasting the part once The Joker’s involvement in THE DARK KNIGHT was announced. Time would prove us wrong.

9- Brian Cox- Stryker- X-Men: United

While a much lower-key villain than anyone else on this list, Brian Cox perfectly encapsulates humanity’s fear of the mutants, which is the plot point that drives along the entire X-MEN series. Cox is one of those character actors that’s just perfect in any role. His Stryker is reserved, but frightening in his irrational belief that what he’s doing to the mutants is just and necessary. He’s a villain who doesn’t think he’s a villain. Danny Huston played a younger version of Stryker in X-MEN ORIGINS: WOLVERINE, and while he was one of the few good things about that movie, he doesn’t hold a candle to Cox.

10- Michael Shannon- Zod – Man of Steel

Obviously Michael Shannon’s the newest addition to this list. While MAN OF STEEL is still a little too fresh in all of our memories to really decide where Shannon belongs in the pantheon of great super-villains, to me his performance as Zod was striking. Like Ledger following Nicholson, he doesn’t try to imitate Terrence Stamp, and goes for something a little different, in that his Zod is not a narcissist, but rather a man who was bred to be exactly what he is. It doesn’t hurt that Shannon’s one of the few villains that seems like a physical match for the hero, and his final fight with Superman is one of the best superhero-villain mano-a-mano fights in awhile.

8. Danny DeVito- The Penguin- Batman Returns

Here’s a controversial choice. Back in ’92, people were likely expecting Danny DeVito (then one of the biggest comic stars in the world, thanks to TWINS) to play an overtly funny, scenery chewing Penguin similar to what Nicholson did for The Joker. What we got instead was a freakish, scary, almost pathetic villain who confused and put off the audiences that turned out in droves to see BATMAN RETURNS. Kids were terrified of him, and adults didn’t know what to make of him. Twenty-one years later, upon revisiting the film it’s clear that DeVito’s giving one of his all-time best performances as the tragic Oswald Cobblepot, and while he may not be one of the most charismatic or entertaining villains, he’s certainly one of the most unforgettable.

5. Tom Hiddleston- Loki- Thor & The Avengers

Marvel really lucked out when casting Thor/Loki, as they ended up choosing two mostly unknown actors (Chris Hemsworth and Tom Hiddleston) who both ended up becoming stars overnight thanks to their instantly iconic approaches to their respective characters. Although Hiddleston still isn’t quite the household name Hemsworth has become, he’s grown into an integral part of The Avengers franchise, and while most actors would have been overshadowed by the heroes, he held his own. I expect him to move up this list once THOR: THE DARK WORLD, and AVENGERS 2 hit theaters.

7. Alfred Molina- Doc Ock- Spider-Man 2

Willem Dafoe’s portrayal of The Green Goblin was praised by critics, but they way the character was presented (he looks an awful lot like a Power Ranger) was not. For SPIDER-MAN 2, Sam Raimi wisely chose an accomplished actor- in this case Alfred Molina- to play Doctor Octopus over some buzz-worthy A-list movie star. The result was a superb, three-dimensional, tragic villain brilliantly played by Molina. And this time, the look was just right as well, with the CGI for Doc Ock’s tentacles being cutting-edge for the time.

6. Terrence Stamp- General Zod- Superman II

KNEEL SON OF JOR-EL!!! KNEEL BEFORE ZOD!!! For me, Terrence Stamp’s General Zod always dominated the old seventies/eighties Superman franchise. Right from his first appearance in SUPERMAN- THE MOVIE (“you will bow down before me!!!) Stamp became iconic (as did Sarah Douglas as his hench-woman Ursa). If Richard Donner hadn’t been unceremoniously dumped by the Salkinds in favor of Richard Lester, who adopted a camp approach that makes me think he never picked up a comic book in his life, who knows how good SUPERMAN II would have been? The Donner Cut suggests that it would have been brilliant. Even in it’s final compromised form, Stamp still shines. Zod is so evil, he even manages to somewhat redeem Gene Hackman’s jokey Lex Luthor.

Honorable Mention: Timothy Dalton- Neville Sinclair- The Rocketeer

While THE ROCKETEER has picked up a cult-following in the twenty-two years since it opened (and quickly closed) in theaters, it remains an unfairly obscure superhero movie that I can’t help but think would be a resounding smash hit if was released nowadays. Timothy Dalton, who was the current James Bond back in ’91, plays the ultra-urbane, charismatic baddie Neville Sinclair. A swashbuckling movie star who’s actually a Nazi spy, Sinclair was reportedly inspired by a libelous claim in a tabloid-esque biography of Errol Flynn that he was suspected of being a Nazi spy during WW2 on the count of a pre-war acquaintance, and the fact that he never served overseas. The reality was that Flynn had a bad heart, and was thoroughly anti-fascist (he covered the Republican side of the Spanish Civil War as a journalist), but clearly the story had legs and inspired Dalton’s performance. He’s damn perfect in the part.

About the Author

Chris Bumbray began his career with JoBlo as the resident film critic (and James Bond expert) way back in 2007, and he has stuck around ever since, being named editor-in-chief in 2021. A voting member of the CCA and a Rotten Tomatoes-approved critic, you can also catch Chris discussing pop culture regularly on CTV News Channel.