15 Actors Who Mastered Both Heroes and Villains

Playing a great hero is difficult. Playing a great villain can be even harder. But mastering both across a career is a rare skill that only a few actors truly pull off. It takes range, control, and the ability to shift how audiences see you without losing credibility. Some actors become so convincing on one side that it feels shocking to watch them switch. Others move between good and evil so naturally that it becomes part of what makes them unforgettable. Whether leading the story or standing against it, these performers proved they could command both sides of the screen with equal power.

IMDb

Ian McKellen

He became a symbol of wisdom and heroism as Gandalf in The Lord of the Rings: The Fellowship of the Ring (2001), while also embodying Magneto’s dangerous complexity in X-Men (2000).

IMDb

Joaquin Phoenix

Phoenix brought empathy and pain to heroic roles like Gladiator (2000), but his transformation into the Joker in Joker (2019) became one of the defining villain performances of modern cinema.

IMDb

Michael B. Jordan

Jordan became an inspiring hero in Creed (2015), but his role as Killmonger in Black Panther (2018) created one of Marvel’s most compelling villains.

IMDb

Ralph Fiennes

From the horrifying Amon Göth in Schindler’s List (1993) to the noble M in the modern Bond films, Fiennes has shown extraordinary control over both extremes.

IMDb

Rosamund Pike

She played a cold and manipulative villain in Gone Girl (2014), but her more sympathetic and protective performances in films like A Private War (2018) showed her dramatic range.

IMDb

Tom Hiddleston

As Loki in Thor (2011), he became one of cinema’s most beloved villains, but his heroic side shines in roles like Jonathan Pine in The Night Manager (2016).

IMDb

Willem Dafoe

Few actors move between hero and villain as effortlessly as Willem Dafoe. From noble roles like in Platoon (1986) to terrifying villains like Green Goblin in Spider-Man (2002), his range has remained unmatched for decades.

IMDb

Anthony Hopkins

Hopkins gave cinema one of its greatest villains as Hannibal Lecter in The Silence of the Lambs (1991), but his compassionate and heroic performances in films like The Father (2020) show the opposite side.

IMDb

Cate Blanchett

She embodied grace and heroism as Galadriel in The Lord of the Rings: The Fellowship of the Ring (2001), while her turn as Hela in Thor: Ragnarok (2017) made her a powerful antagonist.

IMDb

Charlize Theron

She played the fierce protector Furiosa in Mad Max: Fury Road (2015), while her chilling role as the murderous Aileen Wuornos in Monster (2003) proved how terrifying she could be.

IMDb

Chris Evans

Chris Evans became the ultimate symbol of heroism as Captain America in Captain America: The First Avenger (2011), but years earlier, he played the manipulative and selfish Ransom in Knives Out (2019), showing a very different side.

IMDb

Christian Bale

He became an iconic hero as Batman in Batman Begins (2005), while his disturbing and morally dark roles in American Psycho (2000) and The Prestige (2006) revealed a much darker edge.

IMDb

Denzel Washington

Often cast as noble and righteous men, Washington shocked audiences with his corrupt and dangerous performance in Training Day (2001).

IMDb

Gary Oldman

Oldman has played everything from heroic figures like Sirius Black in Harry Potter and the Prisoner of Azkaban (2004) to unforgettable villains like Norman Stansfield in Léon: The Professional (1994).

IMDb

Heath Ledger

Known for romantic and heroic roles like A Knight’s Tale (2001), Ledger completely transformed into one of the most terrifying villains ever as the Joker in The Dark Knight (2008).