Skip to main content

Every Marvel villain ranked from worst to best

Over a decade in, the Marvel Cinematic Universe is still going strong. Its projects might not be as universally beloved as they once were, but there’s no denying that they remain hugely influential. Fans still run to theaters to watch them, and critics still enjoy dissecting them and analyzing their effect on modern cinema. Through highs and lows, the MCU has given us some of the best superhero movies of all time, cementing many classic heroes as pop culture icons and elevating some D-list characters into the big leagues.

Still, if there’s one aspect where the MCU is more divisive, it’s in the villain department. Most MCU antagonists go from forgettable to just OK, barely scratching the surface of villain greatness. Of course, there are some exceptions, and several MCU baddies have elevated the material, going past the films’ limitations and becoming legends in the process. After 29 films and almost as many villains, here’s a definitive ranking of which villains reign at the top of the mountain of evil and which can barely call themselves bad guys.

27. Aldrich Killian – Iron Man 3 (2013)

Aldrich Killian in a poster for Iron Man 3.

The less we talk about this atrocity of a character, the better. Next.

26. Ava Starr/Ghost – Ant-Man and the Wasp (2019)

Ghost with her mask off looking to the distance in Ant-Man and the Wasp.

Ava is the worst type of villain: not good, not bad, just not nice. The tragic angle fails to impress, and the plot does her no favors by introducing another quasi-bad guy who’s just as unimpressive. Ava’s powers are among the coolest in the MCU; if only she had the personality to match.

25. Yon-Rogg – Captain Marvel (2019)

Yon-Rogg looking to his left in a promo image for Captain Marvel.

You cast Jude Law, and you give him thisCaptain Marvel has many flaws, but its lack of memorable antagonists is one of its worst. Both Law’s Yon-Rogg and the film’s other villain, the Supreme Intelligence — embodied by the equally supreme Annette Benning — deviate considerably from the comics, but have enough potential to work. However, in its effort to subvert audiences’ expectations about the Skrulls, the film undermines its two actual threats.

24. Ronan the Accuser – Guardians of the Galaxy (2014)

Ronan the Accuser looking up in Guardians of the Galaxy.

A barely recognizable Lee Pace plays Ronan the Accuser as a stiff and supposedly intimidating villain. However, the character comes across more as a big oaf than a genuinely menacing warlord. Rocket Raccoon packs a better punch than this sorry excuse for a despot.

23. Malekith – Thor: The Dark World (2013)

Malekith looking up with a puzzled expression in Thor: The Dark World.

Marvel’s tradition of hiring great actors to play terrible roles has never been clearer. Buried under a pile of admittedly impressive makeup, Christopher Eccleston can barely do anything to elevate a paper-thin role. Thor: The Dark World is a strong contender for worst MCU film ever, and Malekith certainly does its shoddy reputation no favors.

22. Ivan Vanko/Whiplash – Iron Man 2 (2010)

Ivan Vanko in his Whiplash costume looking to his left in Iron Man 2.

It’s sad that the most Mickey Rourke could do with his post-The Wrestler cachet is play a mediocre villain in an equally mediocre MCU film. Sure, Ivan is fun, equal parts ridiculous and entertaining, but he’s not even the most memorable jerk in his movie; Tony and Justin Hammer both out-douche him. He does get some points for being an animal lover, though.

21. Darren Cross/Yellowjacket – Ant-Man (2015)

Darren Cross with his eyebrows raised in Ant-Man.

It’s great when an underrated actor like Corey Stoll gets the chance to appear in a blockbuster. Stoll’s Darren Cross is not the evil version of a certain Glee crooner, but a massive man-child with considerable daddy issues chasing the famous Pym Particles. He’s a good fit for the Ant-Man movies, which sounds more flattering than it’s meant to be. It’s an oOK role — not much there, but as I said, it’s always great to see Stoll.

20. Kaecilius – Doctor Strange (2016)

Kaecilius looking up in Doctor Strange.

Mads Mikkelsen plays one hell of a villain. From Hannibal to Casino Royale to the most recent Harry Potter film, Mikkelsen can deliver creepy like few others. His talents are not on full display in Doctor Strange, though; indeed, the actor seems to be on autopilot for most of the story. However, Mikkelsen’s worst is still miles better than many others’ best, which goes a long way in making Kaecilius seem like more than he is.

19. Obadiah Stane – Iron Man (2008)

Obadiah Stane spreading his arms in joy while on a podium in Iron Man.

Academy Award winner Jeff Bridges (currently starring in the series The Old Man) had the privilege of being the first-ever MCU villain and, in many ways, he set the standard for what the role should be. The actor hams it up with his Obadiah Stane, playing each scene while twirling an invisible mustache. Bridges does his duty, portraying enough menace to sell Stane as a worthy first enemy for Tony Stark.

18. Ikaris – Eternals (2021)

Ikaris looking serious in a promo image for Eternals.

It’s a good thing Richard Madden is pretty to look at because there’s not much else to Ikaris. The character — a soldier who believes there’s a twisted sense of honor in his troubling duty — had the potential to be incredibly intriguing and compelling. However, Eternals has too many stories to deal with and not enough time to do them justice, and Ikaris’ character arc pays dearly for it.

17. Red Skull – Captain America: The First Avenger (2011)

The Red Skull frowning and talking in Captain America: The First Avenger.

Hugo Weaving is so great at playing bad guys that he manages to make them noteworthy, even when barely paying attention. Such is the case for Captain America: The First Avenger, a film Weaving could not be less interested in, and he doesn’t hide it. And yet, the actor comes out victorious in his villainous duties, delivering a suitable portrayal of one of Marvel’s most iconic villains accompanied by a gloriously over-the-top German accent.

16. Emil Blonsky/Abomination – The Incredible Hulk (2008)

The Abomination bearing its teeth in The Incredible Hulk.

Tim Roth loves playing a bad guy, and we love to see him doing it. To make things better, he is obviously having the time of his life playing Emil Blonsky, to the point where he might be the most memorable thing to come out of the otherwise forgettable The Incredible Hulk. Sure, the role is as basic as those in most other MCU films, but Roth, and the film’s great VFX team, succeed in selling the Abomination as an effective villain that is memorable enough to be used in Marvel’s most current streaming series, She-Hulk: Attorney at Law.

15. General Dreykov – Black Widow (2021)

General Dreykov talking to Taskmaster in Black Widow (2021).

Black Widow is a mostly disappointing film, largely because it arrived two whole years after its titular character’s death, making it hard to care about anything that happened. Still, there was something impressive about its villain, Ray Winstone’s Dreykov. Echoing a dark and prevalent real-life danger that made the character uncomfortably close to home for some, Dreykov embodied the monster that lives under the bed

14. Ultron – Avengers: Age of Ultron (2015)

Ultron making a fist and raising it in Avengers: Age of Ultron.

James Spader’s unsettling charm single-handedly elevates Ultron from barely Ok territory, a feat made more impressive by the fact that it’s only through his voice. The murderous robot is nothing that the MCU hadn’t done before, but Spader is game and his enthusiasm shows. His Ultron is acidic and funny, taking otherwise uninspired dialogue and turning it into a genuine surprise.

13. Ego, the Living Planet – Guardians of the Galaxy Vol. 2 (2017)

Ego smiling in Guardians of the Galaxy Vol. 2.

Guardians of the Galaxy Vol. 2, otherwise known as Daddy Issues: The Movie, is the perfect vehicle for Kurt Russell. Capitalizing on his late ’80s action-man persona, Russell plays Ego as a pastiche of the trope, instantly standing out among the sea of other MCU bad guys. Russell makes the most of his time as Ego, mainly because he realizes how unserious everything around him is and just goes along with it.

12. Gorr, the God Butcher – Thor: Love & Thunder (2022)

Gorr the God Butcher staring menacingly in black and white promo for Love and Thunder.

The definition of a paycheck gig, Christian Bale’s role in Thor: Love and Thunder is still a breath of fresh air. The film isn’t good, making Bale’s Gorr stand out even more. The Oscar winner goes all-in with his take on the God Butcher, making the most out of every second he’s on screen. Love and Thunder could benefit from having more Gorr on screen rather than focusing on a half-baked love story that never rings true.

11. Adrian Toomes/Vulture – Spider-Man: Homecoming (2017)

Adrian Toomes leaning against a table in Spider-Man: Homecoming.

Michael Keaton’s Adrian Toomes is the embodiment of the working-class villain. In a world where the bad guys are either power-hungry madmen or deranged accidents, Keaton’s Vulture is just a guy trying to survive by hustling the hustlers. It’s an inspired take for the character, and while Vulture is admittedly small peanuts compared to other MCU antagonists, he’s exactly what a young Peter Parker needs to understand what it means to be a hero.

10. Alexander Pierce – Captain America: The Winter Soldier (2014)

Alexander Pierce with his arms spread in Captain America: The Winter Soldier.

Now and then, the MCU convinces a true legend to appear in its projects. Case in point is Robert Redford’s portrayal of Alexander Pierce in arguably the best Marvel film to date, Captain America: The Winter Soldier. Playing the bad guy in a world of bad guys, Redford’s Pierce is the embodiment of corruption and the perfect foe for the straitlaced Steve Rogers. Menacing by just existing, Pierce is unique among the MCU’s villains.

9. Xu Wenwu – Shang-Chi and the Legend of the Ten Rings (2021)

Wenwu in a fighting position in Shang-Chi and the Ten Rings.
Marvel Studios

And speaking of legends, Shang-Chi and the Legend of the Ten Rings had one in Tony Leung. The Chinese icon had the daunting task of restoring the Mandarin’s reputation after the MCU crapped all over it with the horror that is Iron Man 3. Luckily, the role couldn’t have been in better hands. Leung portrayed Wenwu with the perfect mix of weariness and determination, crafting a compelling and sympathetic character while remaining dangerous and fearsome.

8. Helmut Zemo – Captain America: Civil War (2016)

Helmut Zemo sitting down and looking attentively in Captain America: Civil War.

Helmut Zemo might arguably be the most impressive villain in the MCU. The self-described patient and knowledgeable Colonel succeeded in breaking up the Avengers by using the most dangerous tool at his disposal: the truth. Aided by Daniel Brühl’s unnerving performance, Zemo became a worthy foe for Earth’s Mightiest Heroes using only his wits. Now, that’s impressive.

7. Norman Osborn/Green Goblin – Spider-Man: No Way Home (2022)

The Green Goblin prepares to attack in Spider-Man: No Way Home.

A bit unfair, considering so much of Willem Dafoe’s Osborn in No Way Home relies on his excellent work in Sam Raimi’s Spider-Man trilogy. Indeed, the MCU’s latest Spidey effort makes no attempt at hiding its shameless piggybacking on Raimi’s superior films. Still, the four-time Oscar nominee brings a healthy and much-needed dose of lunacy to the MCU, giving Holland’s Spidey the battle of his life. More MCU villains should be as balls to the wall as Dafoe’s Green Goblin.

6. Quentin Beck/Mysterio – Spider-Man: Far From Home (2019)

Mysterio with his helmet off in Spider-Man: Far From Home.

Jake Gyllenhaal relishes every second he gets to play Quentin Beck. Mysterio has some of the most visually interesting powers out of any MCU villain, and Spider-Man: Far From Home uses them to their fullest extent, delivering some of the most striking sequences in its history. Gyllenhaal’s Mysterio succeeds in ruining Peter Parker’s life and looks fabulous doing it. Few other villains can boast of so many accomplishments.

5. Erik Killmonger – Black Panther (2018)

Erik Killmonger standing in the throne room with two guards behind him in Black Panther.

Michael B. Jordan brings a sense of gravitas to his portrayal of Erik Killmonger. Black Panther already has a sense of dignity that few, if any, MCU films share. However, Jordan goes the extra mile, injecting a healthy dose of realism and cynicism into his villain. Killmonger is anger personified; he might use a high-tech suit, but his motives and rage stem from very real and prevalent injustices. In Killmonger, the MCU finds the perfect balance between the superhero genre and genuine, deeply human drama.

4. Loki – Thor (2011) & The Avengers (2012)

Tom Hiddleston as Loki in a scene from the Disney+ series Loki.

It takes some serious commitment to play a character for more than 10 years. Tom Hiddleston’s Loki is the only MCU villain to receive such development beyond his initial stint, and while he achieved it by sacrificing most of his evil ways, it’s still an impressive achievement. These days, Loki is more antihero than all-out villain, but that’s the charm of the trickster. He can be good or bad, depending on the situation, yet his self-serving ways are always the priority. Hiddleston turned Loki into a character almost as important as any Avenger, something that even Loki would admire.

3. Hela – Thor: Ragnarok (2017)

A close-up of Hela looking serious in Thor: Ragnarok.

It took the MCU nine years to introduce a female villain, but it was worth the wait. Cate Blanchett’s Hela packed more punch with one line of dialogue than most other Marvel villains had in their entire movies. The two-time Oscar winner sank her perfect teeth into the role, chewing scenery left and right and delivering every word of dialogue with delicious wickedness. Hela gave Thor a run for his money and contributed to cementing Thor:Ragnarok as one of the best films in the MCU.

2. Wanda Maximoff/Scarlet Witch – Doctor Strange in the Multiverse of Madness (2022)

Scarlet Witch levitates in a circle of candles.

Is Wanda Maximoff a villain? Yes, she is. However, the Scarlet Witch is also the MCU’s best character. Thanks to a storyline that devoted sufficient time to explore her trauma and psyche, as well as Elizabeth Olsen’s excellent performance, the Scarlet Witch was free to bend the entire multiverse in Doctor Strange’s most recent adventure. Her rage might seem unearned, and she might not be fully villainous after the film’s ending. However, she is far from the clean-cut, goody two-shows Avenger. Wanda is not reasonable, but no one can say she’s not fascinating.

1. Thanos – Avengers: Infinity War (2018) & Avengers: Endgame (2019)

Thanos looking serious with smoke behind him in Avengers Infinity War.

Who else, if not the Mad Titan, could top this list? Thanos lived up to the 10-year buil-up, embodying the Avengers’ worst fears and beating them at their own game with a snap of his massive fingers. Thanks to Josh Brolin’s thoughtful, pragmatic performance, and some genuinely impressive work from the VFX team, Thanos was the best possible antagonist for the Avengers to face. The Mad Titan brought every hero in Marvel to their knees, daring them to get up if they could. Thanos is the best Marvel villain; chances are he’ll never get dethroned. Sorry, Kang.

Editors' Recommendations