Michelle Pfeiffer will be returning to her role as Janet Van Dyne, aka the original Wasp, in the upcoming Ant-Man and the Wasp: Quantumaniaand based on what we’ve seen so far, it looks like she’ll have a much more significant role than she did in the previous film. She’s far from the first actor to play multiple superheroes (she was, of course, a Stunning Catwoman in 1992’s Batman Returns), and she certainly won’t be the last. Here are 17 more actors who have played multiple superheroes or supervillains on the big screen.
Ben Affleck
To the surprise of many, Batfleck was, arguably, the best part of Batman v Superman: Dawn of Justice. But before he became the Batman, Affleck played a Marvel character, Matt Murdock aka Daredevilall the way back in 2003, before the MCU was even a thing.
Christian Bale
Bale is another in the long list of actors who have played the world’s greatest detective, starring in Christopher Nolan‘s Dark Knight trilogy from 2005 to 2012. More recently, he joined the MCU as the god-killing villain Gorr in 2022’s Thor: Love and Thunder.
Halle Berry
Berry has had a long and successful run as Ororo Munroe/Storm in the X-Men universe starting with the first film in the franchise, 2000’s X-Men (the only film in which she attempts a Kenyan accent) and most recently in 2014’s X-Men: Days of Future Past. But she also dipped her toes into the DC Universe in 2004 as the title character in the widely panned Catwomanwhose alter ego is not named Selina Kyle but, inexplicably, Patience Phillips. Despite being headlined by Berry and Sharon Stonethe film has an abysmal 8% on Rotten Tomatoes.
Josh Brolin
Since Deadpool is now officially part of the MCU, we’re free to speculate about what might happen if Thanos ever meets Cable, Brolin’s stone-faced part-cyborg who saved Wade Wilson’s life in Deadpool 2.Although Thanos is dead in the current timeline, Cable is a time-traveler (and we all know death doesn’t really matter in the MCU anyway — after all, the Avengers have already had to kill Thanos twice), so an encounter between The two aren’t out of the question.
Nicolas Cage
Cage is known for taking on a wide range of roles in all kinds of movies, and his career as a superhero is no different. His first super role was as the title character, aka Johnny Blaze, in 2006’s Ghost Rider and its 2011 sequel. In between those films, he played Damon Macready/Big Daddy, a sort of Batman knock-off, in 2010’s Kick-Assa more grounded and comedic look at superheroes based on the comics series of the same name. And he took a turn as Spider-Man Noir in 2018’s Spider-Man: Into The Spider-Verse.In the 1990s Cage was also slated to play Superman in Tim Burton‘s ill-fated Superman Lives; he finally got his chance to do so in 2018 in Teen Titans GO! To the Moviesproviding the voice of the last son of Krypton.
Jim Carrey
Carrey might not be the first name that comes to mind when you think about superheroes, but believe it or not, he’s had a go at it three times. In 1994, he starred as Stanley Ipkiss in The Maskbased on the Dark Horse comics series, and the following year he gave us his take on the Riddler, aka Edward Nygma, a disgruntled Wayne Enterprises employee who becomes obsessed with Bruce Wayne in Batman Forever. Then in 2011 he appeared in Kick-Ass 2 as former mafioso and current born-again Christian Colonel Stars and Stripes, who teams up with Kick-Ass and other low-budget supes to combat a rising collective of supervillains.
Idris Elba
Elba is a relative newcomer to the superhero world, first playing the Asgardian Heimdall in Thor in 2011 and again in five subsequent MCU films. He also made an appearance as the monk Moreau in 2011’s Ghost Rider: Spirit of Vengeancethough the character isn’t technically a superhero. Most recently, he played Robert DuBois/Bloodsport in James Gunn’s 2021 The Suicide Squad.
Chris Evans
Evans’ take on Captain America was one of the pillars of Marvel’s Phase 1, but before he became the First Avenger, he had a run in another Marvel property: he first appeared as Johnny Storm aka the Human Torch in 2005’s Fantastic Fourthen again in 2007’s Fantastic Four: Rise of the Silver Surfer. And if we want to get technical, he also briefly played Loki pretending to be Cap in Thor: The Dark Worldthough he wasn’t credited for it.
Tom Hardy
Hardy’s breakout role came as Eames in 2010’s hit Inceptionbut it was another Nolan film, The Dark Knight Risesthat gave him his first super role as Bane, terrorist revolutionary, ex-member of the League of Shadows, and sidekick to Talia al Ghul. He’s since made the leap from DC to Marvel, appearing as journalist Eddie Brock and alien symbiote Venom in 2018’s Venomthe 2021 sequel Venom: Let There Be Carnageand an after-credits appearance in Spider-Man: No Way Home.
Oscar Isaac
The most recent superhero role for Isaac came on the small screen in 2022’s Moon Knightbut he’s also appeared in both the X-Men universe and the Spider-Verse. In the former, he plays En Sabah Nur, the eponymous villain in 2016’s X-Men: Apocalypseand in the latter he voices Miguel O’Hara/Spider-Man 2099 (credited as “Interesting Person #1”).
Samuel L. Jackson
Jackson has become synonymous with Nick Fury in the MCU (who isn’t really a superhero but gets credit for creating the Avengers Initiative), but that wasn’t his first appearance in a superhero film. Jackson appeared as Elijah Price, aka Mr. Glass, in M. Night Shyamalan‘s Unbreakable in 2000, and 19 years later the third film in the trilogy, glassconfirmed that Mr. Glass is indeed a real supervillain. Jackson also voiced Frozone in the best Fantastic Four movie, The Incredibles (2004), and its 2018 sequel.
Michael B. Jordan
Too often in superhero movies, the villains are far less interesting than the heroes they oppose. Michael B. Jordan bucked that trend as Erik Killmonger in Black Pantherthe antagonist so compelling that he actually changed the hero’s views. But that wasn’t Jordan’s first super role. In 2012’s found footage film Chronicle he played Steve Montgomery, one of three teenagers who suddenly gained telekinetic powers after discovering a mysterious glowing object in a hole in the woods. Jordan then voiced Victor Stone aka Cyborg in 2013’s direct-to-video Justice League: The Flashpoint Paradoxand, to the constellation of racist internet trolls everywhere, played Johnny Storm in the doomed 2015 Fant4sticwhich sits just above Catwoman with a 9% critics’ rating on Rotten Tomatoes.
Michael Keaton
Keaton wins the prize for the longest interval between super appearances. Back when Marvel was pumping out such gems as Howard the DuckKeaton became the definitive caped crusader in Tim Burton’s 1989 Batmanwhich proved that superhero movies could be gritty and adult-oriented, and arguably set the stage for the X-Men, MCU, and DC Universe films to follow. Keaton reprized the role in 1992’s Batman Returns. A full 25 years later he returned to a super role, this time in the MCU as Adrian Toomes aka Vulture in 2017’s Spider-Man: Homecoming. He appeared as Vulture again in Morbius in 2022.
Jared Leto
Speaking of MorbiusJared Leto played the title character in the box office flop, but this, of course, wasn’t his first super role either. The first Suicide Squad gave Leto a chance to do his take on the most infamous supervillain of all time, the Joker, a take which wasn’t particularly well received by most critics.
James McAvoy
McAvoy did an admirable job stepping (so to speak) into Patrick Stewart‘s gigantic shoes as a young Professor Charles Xavier in the X-Men universe. But even that part didn’t show off his acting chops as effectively as his many roles in the Unbreakable franchise’s split (2016) and glassin which he plays the supervillain known as the Beast as well as the Horde, the 23 distinct identities who live in the body of Kevin Wendell Crumb.
Ryan Reynolds
Reynolds is best known for playing Wade Wilson/Deadpool in the X-Men universe, but as fans of the merc with a mouth will know, in between his worst iteration of the Pool in X-Men Origins: Wolverine and his best one in Deadpoolhe also played Hal Jordan in 2011’s Green Lantern. But Reynolds’ first turn as a superhero actually came all the way back in 2004’s Blade: Trinityin which he played Hannibal King, a cured former vampire turned vampire hunter.
Aaron Taylor-Johnson
Aaron Taylor-Johnson had a brief stint in the MCU as Pietro Maximoff aka Quicksilver in 2015’s Avengers: Age of Ultronbut before that he was Kick-Assthe high schooler who becomes a superhero after ordering a green scuba suit online, heading out to fight crime, and immediately getting stabbed and hit by a car. After having some of his bones replaced with metal and teaming up with Big Daddy and Hit Girl (Chloë Grace Moretz), he becomes a viral superhero sensation, and his film becomes a surprise hit.