15 Good Guy Actors Who Portrayed Great Villains

POSTED BY Tayyab Khalil, UPDATED ON November 22nd, 2023
Good Guy Actors Who Portrayed Great Villains

Movie villains are often typecast by actors who have a knack for making the audience utterly hate them. However, there have been some rare instances where Hollywood dared to make a change by selecting typical nice guy actors that play villains. Despite being well-known for portraying people with a heart of gold, the following are the 15 good guy actors who portrayed great villains:


15. Robin Williams (Walter Finch)

Robin Williams Walter Finch

Christopher Nolan loves to experiment in his movies and Robin Williams was his test subject in his very first feature film Insomnia. As one of the most loved performers of his generation, the movie showcased a never-before-seen side of the actor as a villain.

As the prime suspect in the murder of a 17-year-old girl, Walter Finch must escape the wrath of LAPD detectives. Unlike the previously cheerful and jolly roles he is famous for, Williams brilliantly portrayed the silent and cold-hearted killer to the point of director Nolan calling it a “flawless performance.”


14. Elijah Wood (Kevin)

Elijah Wood Kevin

Who would have thought that the man who saved the entire world by throwing the One Ring on Mount Doom would one day become a cannibalistic serial killer? A strong contrast to Elijah Wood’s iconic hobbit role.

It just so happened that The Lord of the Rings star played such a ruthless villain in the 2005 film adaption of Sin City. Do not let his unassuming look fool you as one of his victims revealed that Kevin ate her hand right in front of her.


13. Hugh Jackman (Robert Angier)

Hugh Jackman Robert Angier

You might remember the Australian actor fighting vampires in Van Helsing and mutant oppression in the X-Men franchise, but Hugh Jackman excellently served as the villain Robert Angier in Christopher Nolan’s The Prestige.

As a magician competing against rival Alfred Borden, things got too personal. It was not about performing better tricks anymore, it was about destroying the other and Angier succeeded.

Angier definitely had the audience repulse him as he got Borden arrested for his apparent murder, got him executed for a crime he did not commit, and even took his daughter as an adopted child.


12. Tom Cruise (Vincent)

Tom Cruise Vincent

He is an actor who needs no introduction and has inspired millions of people with his heroic roles in Top Gun, Legend, and of course, the Mission Impossible installments. The role of a villain may sound unsuitable for Tom Cruise but the actor took it as a challenge and nailed it perfectly.

As a professional hitman hired to kill four witnesses, Cruise immersed himself as Vincent in the psychological crime thriller Collateral and proved that he could make any role great thrown in front of him. The movie received positive reviews and so did Cruise for his villainous role.


11. Matt Damon (Tom Ripley)

Matt Damon as Tom Ripley

Known for his clean-cut roles, the attractive Matt Damon is one of the most loved and idolized actors in Hollywood so the role of a villain was met with hesitation. Nonetheless, the actor accepted and the fans never looked at Damon with the same feelings again.

As Tom Ripley in The Talented Mr. Ripley, the character hid his cruelness beneath his handsome looks and killed people who got in the way of what he desired. Purely a monster, it was incredible to see Damon doing work unlike ever before.


10. Bill Murray (Frank Milo)

Bill Murray as Frank Milo

Among the several great actors known for their attachment to comedic work, Bill Murray is one of them. It was unlikely that the man who saved New York from ghosts (twice) as Peter Venkman would one day start as a villain in the future.

With a star-studded cast of Robert De Niro and Uma Thurman, Mad Dog, and Glory received positive reviews and owes a great deal to Bill Murray. As Frank Milo, it was interesting to see Murray executing his acting skills by terrifying the audience by portraying the villain.


9. Denzel Washington (Alonzo Harris)

Denzel Washington as Alonzo Harris

With all honesty, Denzel Washington proved that he can pull off villainous roles as well as he does with heroic ones when he portrayed the corrupt narcotics officer Alonzo Harris in Training Day.

Regarded as one of his best movie performances, Washington was absolutely convincing as the bad guy and even won the Academy Award for Best Actor for the role.


8. Jim Carrey (The Riddler)

Jim Carrey as Riddler

Starring as a happy-go-lucky character in dozens of movies throughout his career, Jim Carrey has made countless people laugh with his funny antics in several comedy movies.

As the great actor that he is, Carrey was able to utilize his knack for comedy to make the audience hate him when he starred as Edward Nygma aka Riddler in Joel Schumacher’s Batman Forever.

Deducing the Dark Knight’s secret identity of Bruce Wayne, kidnapping his side-kick Robin, and destroying the Batcave, Carrey served as Batman’s worst nightmare in the movie.


7. Tom Hanks (Michael Sullivan)

Male Actors Who Play Villains

Many were skeptical when it was announced that the immensely likable actor would be portraying the top-notch hitman Michael Sullivan in the crime thriller Road to Perdition.

From the naïve Forrest Gump to the brave John H. Miller, Tom Hanks was so natural and remarkable with the role that he made the audience rethink if they were watching an actor or an actual underground gangster.


6. Hulk Hogan (Hollywood Hogan)

Hulk Hogan as Hollywood Hogan

Professional wrestling is quite similar to the movie industry. There is a hero, villain, storyline, and of course, fight scenes. There have been many good-guy wrestlers who became baddies but Hulk Hogan takes the cake.

History was made in 1996 at WCW pay-per-view Bash at the Beach when Hogan shockingly became a villain for the very first time in his career and allied himself with Kevin Nash and Scott Hall giving birth to New World Order.

The audience threw the debris in the ring when Hogan turned heel. Changing his look, the superstar discarded his traditional red and yellow clothes, wore black and white clothing, grew a beard, and died it black and referred to himself as Hollywood Hogan.


5. Shahrukh Khan (Ajay Sharma)

Shahruh Khan good guy actor who portrayed great villain

Hailed as King Khan in Bollywood, Shahrukh Khan is one of the greatest stars in India today and his popularity has spread across the globe. Though the actor is well-known for being a romantic hero with a good sense of humor, it was the movie Baazigar which was a career-defining movie for Khan.

As a villain, Ajay Sharma was bent on making the life of his father’s arch-rival a living hell. Justifying his actions for the sake of revenge, a star was born and Khan won the Filmfare Award for Best Actor for the role.


4. Leonardo DiCaprio (Calvin Candie)

Leonardo DiCaprio as Calvin Candie

The very idea of Leonardo DiCaprio playing a bad guy is wacky but controversial director Quentin Tarantino was too amused with it and cast the actor as the head villain of his 2012 movie Django Unchained.

The actor has won the hearts of millions of people and established himself as a heart-throb with numerous good guy roles most notably Jack Dawson from Titanic. In Tarantino’s Western movie, the actor portrayed the cruel Calvin Candie.

Showing no sympathy for his black slaves, Calvin Candie held fights among them to death. On one occasion, when one of his slaves refused to fight anymore, Candie had him mercilessly fed to the dogs.


3. Samuel L. Jackson (Stephen)

Samuel L. Jackson as Stephen

Speaking of Django Unchained, veteran actor Samuel L. Jackson also served as a villain in the movie. From saving people in Snakes on a Plane to showing no remorse for his race as Stephen, the actor intensely pulled off the role that made the viewers despise him.

Jackson has appeared in Tarantino’s films multiple times but in Django Unchained, the actor showed a remorseless performance like never before. Accepting your status as a slave is bad enough but turning on your race adds insult to injury.


2. Brad Pitt (Tyler Durden)

Brad Pitt as Tyler Durden

Long before Brad Pitt saved the world in World War Z and fought for America in Fury, the actor collapsed several buildings and destroyed the financial network like Tyler Durden in Fight Club.

As one of the most unique movies of all time, the insomniac narrator of the movie realizes the true purpose behind the recreational fighting club they founded with Durden. Things soon take a different turn when the narrator comprehends the fact that Durden is his very own split personality.


1. Heath Ledger (The Joker)

Heath Ledger as The Joker

If there is a movie villain that can put every other one to shame, it is the Joker from The Dark Knight. Moreover, the villain was portrayed by Heath Ledger who was greatly underestimated for the intense role of the Clown Prince of Crime.

Well-known for playing a romantic teenager in 10 Things I Hate About You, a heroic knight from A Knight’s Tale, and a cowboy in Brokeback Mountain, the stakes were high but Ledger made the naysayers eat their words.

Perhaps the greatest movie villain of all time, the Joker defeated Batman in his movie. As the tip of the iceberg, Ledger won the Academy Award for Best Supporting Actor for the role.

Hope you agree with our list of good guy actors who portrayed great villains. Feel free to share some names that pop into your mind when you think about actors who make good villains in the comments below!

Leave a Comment