9 Actors Who Have Stepped Into Roles As Both Heroes and Villains, Ranked

Josh Brolin (Thanos/Cable)

Sure, it’s great to be the hero who saves the world and returns order to innocent people’s lives. However, it must also be delicious fun to take on the villain who wreaks havoc and enjoys every chaotic second. For the talented actors who played superheroes and supervillains, they’ve had the rare chance to do both.

A great hero will captivate an audience and make them stand and cheer. The perfect villain will enrage an audience and make them boo. One movie truth is that a great hero is absolutely nothing without a worthy adversary. 

1. Michael Keaton (Batman/Vulture)

Michael Keaton (Batman/Vulture)

Most Reagan-era movie fans knew Michael Keaton as the comedic actor from 1980s comedies like Mr. Mom and Beetlejuice. During that time, superhero movies were not anywhere near as ubiquitous as they became in later decades. When Warner Bros. announced it was making a big-budget Batman movie, comic book fans got excited. However, many of those same fans were unhappy when director Tim Burton hired Keaton to play the title role.

Despite the Bat-controversy, Keaton admirably performed as the Dark Knight in two Batman features – 1989’s Batman and 1992’s Batman Returns. Prior to Keaton’s turn as the vigilante superhero, most people only knew the campy Adam West version of Batman from the tongue-in-cheek 1960s television series. Keaton brought a complicated, intellectual quality to the superhero.

Keaton turned supervillain for 2017’s Spider-Man: Homecoming. The Oscar-nominated actor played arms dealer Adrian Toomes, who becomes the villainous Vulture. Keaton’s bad-guy character was both supervillain and respected family man. Co-producer Eric Hauserman Carroll described Toomes as “the dark Tony Stark.”

2. Josh Brolin (Thanos/Cable)

Josh Brolin (Thanos/Cable)

Josh Brolin first entered the Marvel Cinematic Universe as the supervillain Thanos in 2014’s Guardians of the Galaxy. Thanos did not have a big presence in Guardians, but his trouble-making role grew in Avengers: Infinity War and Avengers: Endgame. The alien warlord from the planet Titan is such a mighty supervillain that the Avengers have to call in superhero reinforcements – the Guardians among them.

Brolin must be doing something right as Thanos. In 2020, Thanos was ranked as the world’s most popular film villain

Brolin later took on the enigmatic Cable in 2018’s Deadpool 2. The time-traveling mutant soldier is not necessarily a good guy or a bad guy. His body has been mostly remade with cybernetics. He has the strength and ability to kill and/or beat up just about anything.

Both Thanos and Cable are important Marvel characters. Which one does Brolin prefer playing? According to Rob Liefield, who co-created the character Cable, Brolin is looking forward to playing Cable in additional MCU films: 

Josh wants to be Cable again sooner than later. He is itching to be Cable again. He loved being Cable. He told me he understands how beloved his role as Thanos is, but he doesn’t look completely like Josh Brolin.

3. Hugo Weaving (V/Red Skull)

Hugo Weaving (V/Red Skull)

We don’t get to see much of Hugo Weaving’s face in either of these two comic book roles. Movie fans will most likely recognize the British actor as Agent Smith from The Matrix trilogy and the half-elven Elron from The Lord of the Rings and The Hobbit franchises.

In 2005, he portrayed the masked V in V for Vendetta. V maybe an anarchist terrorist, but his heart is in the right place. Weaving hides his face behind the Guy Fawkes mask for the entire film. However, the actor adds the perfect amount of flair and mystery to make the freedom fighter memorable.

Weaving went over to the dark side in 2011 to portray the supervillain Red Skull in 2011’s Captain America: The First Avenger. The audience only gets to see Weaving’s face when he is Adolf Hitler’s colleague Johann Schmidt. He becomes Red Skull when his face is disfigured after he injects himself with Super Soldier Serum. Weaving is more than convincing and went down as one of the MCU’s most ferocious villains.

4. Idris Elba (Heimdall/Bloodsport)

Idris Elba (Heimdall/Bloodsport)

Idris Elba just looks like a natural superhero. The English actor entered the MCU in the supporting role of Heimdall in 2011’s Thor. Heimdall also fought the bad guys in Thor: The Dark WorldAvengers: Age of UltronThor: Ragnarok, and Avengers: Infinity War. Heimdall, the all-seeing guard who keeps a watchful orange eye on the Nine Realms, was played by Elba as his film career was on the rise.

Heimdall met his end in Infinity War. However, his character and Elba’s star power are perhaps popular enough that Heimdall may wind up back in the MCU despite his demise. 

Elba is no stranger to playing the villain, of course. He burst onto the acting scene as the stylish antagonist Stringer Bell in HBO’s The Wire. More recently, Elba was cast to play the supervillain Robert DuBois/Bloodsport in James Gunn’s Suicide Squad sequel/soft reboot, The Suicide Squad. Bloodsport’s bloody backstory is a troubling one. In the Superman comics, DuBois wipes out 25 innocent people at a diner on Christmas Eve during a merciless shooting. 

The film’s director James Gunn took to social media to gush over Elba’s performance in The Suicide Squad and wish him a happy birthday:

I rarely write roles for actors I’ve never met, but I did exactly that for @idriselba in #TheSuicideSquad & couldn’t be happier I did – you went beyond my expectations as an actor AND as a human being. I can’t wait for folks to see you as #Bloodsport. Happy Birthday, my friend!

5. Christian Bale (Batman/Gorr the God Butcher)

Christian Bale (Batman/Gorr the God Butcher)

Christopher Nolan’s Dark Knight trilogy takes on a much more serious tone than the Batman films from the 1980s and ’90s. Christian Bale, a serious dramatic actor with an impressive body of work, appeared as the Caped Crusader in Batman BeginsThe Dark Knight, and The Dark Knight Rises.

The trilogy was both critically acclaimed and a box-office behemoth. Nolan and Bale successfully made the flawed DC superhero with a dark past a much more realistic character. In between the last two films of the trilogy, Bale won an Oscar for Best Supporting Actor for his performance in The Fighter.

Bale is no stranger to dubious characters. He played a (maybe) serial killer in American Psycho as well as the controversial Dick Cheney in Vice. The Welsh actor is set to play supervillain Gorr the God Butcher in Taika Waititi’s fourth Thor installment, Thor: Love and Thunder, which has a 2022 release date. Just the name “Gorr the God Butcher” sounds like real trouble for the Norse god Thor. 

Gorr may not be the best-known villain in the MCU, but his interesting backstory is filled with grief and tragedy. His pregnant wife and all his children were wiped out due to natural disasters. It’s no wonder why Gorr becomes a villain hell-bent on killing gods.

6. Michelle Pfeiffer (Catwoman/Janet van Dyne)

Michelle Pfeiffer (Catwoman/Janet van Dyne)

Michelle Pfeiffer was at the height of her Hollywood fame when she decided to put on a tight catsuit and turn villain for Tim Burton’s 1992 sequel Batman Returns. Pfeiffer’s performance as Selina Kyle/Catwoman opposite Michael Keaton’s Batman is widely regarded as the best live-action Catwoman performance across both television and film.

Pfeiffer’s natural sex appeal and ability to go from Selina’s mousy personality to all-out delicious villain is impressive. It’s tough to argue that Catwoman is the Oscar-nominated actress’s best career performance, but it’s at least in the discussion.

Pfeiffer crossed over from the DC world to the Marvel Universe to play Janet van Dyne in 2018’s Ant-Man and the Wasp and reprised her role in Avengers: Endgame. 

Janet van Dyne is Hope van Dyne/The Wasp’s (Evangeline Lilly) mother (and the original Wasp) and wife of Hank Pym (Michael Douglas). The character has a heroic past and once sacrificed herself in order to disarm a Soviet missile.

7. Kurt Russell (The Commander/Ego)

Kurt Russell (The Commander/Ego)

Kurt Russell was several decades into his Hollywood career when he took on the role of the Commander (AKA Steve Stronghold) in the 2005 superhero comedy Sky High. His good-guy character shares a lot of qualities with Superman. The premise of the family-friendly film centers on a high school for teenage superheroes. In the world of Sky High, the Commander is considered one of the greatest superheroes ever.

Movie audiences have seen Russell adeptly play both hero and villain throughout his prolific acting career. Stuntman Mike from Death Proof is one of modern cinema’s most vile antagonists. The actor had no problem serving as the villain in the MCU’s Guardians of the Galaxy Vol. 2. Ego the Living Planet is Star-Lord/Peter Quill’s (Chris Pratt) long-lost father. He initially comes to Peter as a friend, but then his evil plan to become the only living thing in the entire universe is revealed.

8. Chris Evans (Human Torch And Captain America/Lucas Lee)

Chris Evans (Human Torch And Captain America/Lucas Lee)

With his chiseled features and matinee idol looks, it’s easy to see why Chris Evans has had the opportunity to play not one but two Marvel superheroes. Evans first played Johnny Storm (AKA the Human Torch) in Fantastic Four and Fantastic Four: Rise of the Silver Surfer. Unlike the three superheroes the Human Torch fights alongside, the combustible character enjoys his often destructive abilities.

There was a planned third film in the series. However, the sequel did not perform well enough at the box office to warrant continuing the series.

Evans has kept busy playing Steve Rogers in three standalone Captain America movies and several Avengers films. Even though the patriotic WWII veteran is not a founding member of the Avengers, he is still considered one of the most popular and important among the superhero group.

In between Evans playing the Human Torch and Cap, he turned villainous for the 2010 comedy-fantasy Scott Pilgrim vs. the World. Evans played Lucas Lee, the second evil ex-boyfriend of Ramona Flowers (Mary Elizabeth Winstead) that Scott Pilgrim (Michael Cera) needs to defeat in order to get the girl. Evans adeptly turns against type to play the cruel and cocky Lee – a handsome A-list movie star who is also described as a sell-out (wink wink).

9. Scarlett Johansson (Silken Floss/Black Widow)

Scarlett Johansson (Silken Floss/Black Widow) 

Scarlett Johansson was just beginning to reach her star power in 2008 when she played the antagonist in Frank Miller’s superhero neo-noir The Spirit. The film was a critical punching bag and box-office flop despite Johansson’s presence as Silken Floss, a femme fatale who joins forces with the evil Octopus (Samuel L. Jackson). Together, they try to wipe out an entire city.

The Oscar-nominated actress would have much more success playing Natasha Romanoff/Black Widow in a slew of Marvel movies including Iron Man 2, five Avengers movies, three Captain America films, and finally her 2021 standalone movie, Black Widow.

ScarJo clearly shines in the physical role of the martial arts expert with superhuman speed and strength. Romanoff is also a trained assassin and super-spy. The character is one of the most popular in the MCU.

Why did it take so long for Black Widow to have her own standalone movie? Johansson thinks they needed to wait until after Avengers: Endgame because of her character’s sacrifice. “If we had made a Black Widow standalone back then, it would be such a different film to this one,” said Johansson. “Natasha’s sacrifice in Avengers: Endgame gave her a totally different perspective on who she is.”