Playing a convincing villain is something even some of the best actors struggle with, but not necessarily because they can't pull it off. Sometimes the main problem is that the audience has an actor fixed as the good guy within their minds, and can't accept them in villainous roles. Luckily, there are actors who have managed to overcome this problem to give great against-type performances as villains.

RELATED: Satisfying Villain Deaths In Movies

In more cases than one, these performances changed the way the majority of viewers perceived these actors. It also gave them access to new types of acting opportunities, ones they wouldn't have been cast to play before their breakthrough villainous roles.

5 Heath Ledger as The Joker — The Dark Knight

The Joker (Heath Ledger) - Batman

When Heath Ledger was cast as the Joker, many comic book fans and Batman fans, in general, didn't react well. They feared Ledger wouldn't be able to pull off the demanding role. At the time, he was primarily known for romantic comedies, such as the now-iconic 10 Things I Hate About You (1999). Ledger proved his acting range in movies of other genres as well, such as the Oscar-winning romance drama Brokeback Mountain (2005); however, his role in this film was a far cry from the Clown Prince of Crime.

Ledger put a lot of effort into his role as the Joker, and it paid off. Ledger's Joker stole every scene he appeared in, and overshadowed even Christian Bale's Batman. To this day, Heath Ledger's Joker remains one of the most frightening versions of the Batman villain. Ledger was nominated for an Oscar for this part and won it posthumously.

4 David Tennant as Kilgrave — Jessica Jones

Kilgrave Cropped

Marvel has created its fair share of impressive onscreen villains, but to this day, David Tennant's Kilgrave is one of the best, even though he never appeared in the MCU movies but in the show Jessica Jones. Of course, those familiar with David Tennant's career will know that the Scottish actor played a villain before: Barty Crouch Jr. in Harry Potter and the Goblet of Fire (2005).

RELATED: Satisfying Villain Deaths In TV Shows

However, this role was later overshadowed by Tennant's run as the sometimes frightening but ultimately sympathetic Tenth Doctor in the iconic British science fiction show Doctor Who. Tennant played the Doctor for three seasons, and many fans still think he's the best iteration of the iconic Time Lord. Viewers who associated Tennant primarily with the Doctor were surprised to see his chilling performance of the psychopathic and abusive Kilgrave who kept haunting Krysten Ritter's Jessica even years after they first parted ways.

3 Chris Evans as Ransom Drysdale — Knives Out

Chris Evans as Ransom in Knives Out

After having finished playing the heroic Steve Rogers, aka Captain America, in the MCU, Chris Evans switched sides and went on to play the villain in the murder mystery Knives Out (2019), inspired by Agatha Christie's novels.

Even though Ransom doesn't have as much space in the movie as other members of his family (who also aren't such good guys), he leaves a strong impression. Evans played the role in a fun, light-hearted way, for the most part, making it even more chilling when Ransom suddenly switches tracks and shows how dangerous he truly is. Knives Out is bound to get a sequel soon, but unfortunately for all Evans' fans, a new set of characters will appear in the movie.

2 Leonardo DiCaprio as Calvin Candie — Django Unchained

Leonardo DiCaprio as Calvin Candie in Django Unchained

Despite being known as one of the most versatile and talented actors, most people still associate Leonardo DiCaprio with his heroic characters. After playing Jack Dawson in Titanic (1997), his breakthrough movie, DiCaprio went on to portray mostly sympathetic characters. Even when he played someone who was breaking the law, such as Frank Abagnale Jr. in Steven Spielberg's movie Catch Me If You Can (2002), it was easy to cheer on him.

RELATED: Great Westerns Of The 21st Century

That's why it was surprising for many to see Leonardo DiCaprio play such a convincing villain in Quentin Tarantino's 2012 western movie Django Unchained. Candie represents everything wrong about the USA back in the old days, and his intelligence, sadism, and lack of respect for humans make for an unforgettable performance. DiCaprio actually hurt himself during filming, and the scene made it onto the movie. He was nominated for a Golden Globe for his role, and even though he didn't win, no fan of his should miss out on watching the movie.

1 Steve Carell as John Du Pont — Foxcatcher

Foxcatcher Steve Carell

Steve Carell built his acting career on his comedic skill, both on TV (the popular sitcom The Office) and in the movies (The 40-Year-Old Virgin, Crazy Stupid Love). Carell is so funny in his comedy roles that a lot of people had initially had trouble recognizing him in the 2014 drama movie Foxcatcher, and not just because Carell wore a fake nose in the movie. The film centers on two brothers who are both wrestlers. One of them starts working for Carell's character, the millionaire Du Pont, who has the plan to get both brothers to fight in his team Foxcatcher, but things get complicated.

Steve Carell easily switches between various moods in the movie, going from almost friendly and civil to sinister and cold, proving that he excels in dramatic roles as much as he does in comedy ones. The role even earned him an Oscar nomination for the best actor, and even though Carell didn't win, John Du Pont remains one of his most complex roles.

MORE: Awesome Movie Villains That Do Not Have Tragic Backstories