Movies Where The Bad Guy Was Better Than The Good Guy

A good way to tell if the villain is the best part of a particular movie is to look at the cover art. While most movies feature the hero prominently in their artwork, some pull your eye right to the antagonist. Those are the kinds of movies we’re talking about here.

We all know we’re supposed to be rooting for the good guys to get things done, but sometimes it just feels too good to align yourself with the bad guys. Here are some of the movies where the villain was much more captivating, charismatic or otherwise memorable than the hero. Be aware that spoilers follow for many of these films!

‘The Dark Knight’ (2008)


Let’s start with an obvious one. Anyone who has seen “The Dark Knight” — which seems like virtually everyone who was alive when it came out — remembers Heath Ledger’s Oscar-winning performance as the Joker above all the other spectacle featured in this blockbuster. His character is a terrifying, ruthless killer who is simply out for anarchy, which makes him the polar opposite of Christian Bale’s morally rigid Batman and should make him repellant to viewers. However, Ledger steals every single scene he’s in and even Aaron Eckhart’s eventual villainous turn as Harvey “Two-Face” Dent was more captivating than the titular hero.

‘It’ (2017)


Whenever the title of a movie directly refers to its villain, you can bet that character will probably leave a major impression. That was the case with the recent big-screen adaptation of Stephen King’s “It” — as well as its 2019 sequel. While the members of the so-called “Losers’ Club,” which is the name of the group of childhood friends who are the story’s heroes, are memorable and endearing in their own way, it’s Bill Skarsgård’s performance as Pennywise the Dancing Clown that stuck with audiences. From the first time we see him, enticing a young child to reach into a sewer drain and retrieve a lost toy, this shape-shifting baddie dominates your thoughts as you watch.

‘Black Panther’ (2018)


No disrespect to the late, great Chadwick Boseman, but his heroic T’Challa was outdone by Michael B. Jordan’s intense performance as the villainous Killmonger. It wasn’t just Jordan’s ridiculous physique and the magnetism of his acting that made Killmonger the most memorable character in “Black Panther,” it was the fact that his character’s motivations weren’t completely wrong. While T’Challa wishes for his native Wakanda to remain a nation shrouded in shadow, staying out of global politics, Killmonger argues that the technologically advanced nation should fight for the rights of oppressed Black people around the world and maintain an intimidating presence on the world stage.

‘Thor’ (2011)


Another movie from the Marvel Cinematic Universe with a villain that outshined the titular hero was 2011’s “Thor.” While Chris Hemsworth was fantastic as the hammer-swinging protagonist, it was Tom Hiddleston’s sly performance as Thor’s brother, Loki, that left the greatest impression. Throughout the film, Loki reveals himself to be selfish and conniving at every turn, but Hiddleston’s embodiment of the character makes him completely electric and infinitely more interesting than the goodie-goodie Thor. The fact that Loki was morally gray, rather than flat-out evil, also made him a more appealing figure to root for than many villains.

‘Basic Instinct’ (1992)


When you think of 1992’s Oscar-nominated thriller, “Basic Instinct,” you likely immediately think of Sharon Stone. That’s pretty impressive, given the fact that Stone played a supporting role in the movie — and a villainous one at that. The plot follows Michael Douglas as a San Francisco detective who is investigating a man’s murder but every second of screen time that features Stone’s Catherine Tramell is dominated by her. As Douglas’s character slips into a steamy romance with Catherine, despite the fact that she’s likely the murderer, the audience is happy to go right along with this magnetic woman.

‘Hercules’ (1997)


Disney movies are known for having excellent villains, but the heroes are usually so charming and memorable that those memorable bad guys still don’t earn your outright admiration. The 1997 animated adventure, “Hercules,” followed the legendary son of Zeus as he came of age and found his place in the world. Unfortunately, Hercules was painted as an overgrown Boy Scout who was nowhere near as interesting as the villainous Hades. Actor James Woods’s voice performance as Hades made the character much funnier and more engaging than the hero.

‘The Devil Wears Prada’ (2006)


The beloved 2006 dramedy, “The Devil Wears Prada,” is yet another movie that immediately makes you think of its villain when it comes to mind. While Anne Hathaway played the main character, a naive young woman who lands a coveted job as the assistant to a ruthless fashion magazine editor, it was Meryl Streep as the editor who stole the entire show. While Streep’s character is undoubtedly a bully who cultivates a toxic work atmosphere, her performance is so strong that you can’t help admiring her. The movie also paints Hathaway’s character as a soft kid who is playing at a level way out of her depth, which doesn’t exactly make you hate Streep’s villain.

‘Mean Girls’ (2004)


A couple years before “The Devil Wears Prada,” the high-school comedy “Mean Girls” mined a similar dynamic and also had an unforgettable villain. Lindsay Lohan, a household name in America when the film came out, starred as a girl named Cady, who is the new kid at a public high school that’s ruled by a popular group of girls known as “The Plastics.” The leader of the group is Regina George, played perfectly by Rachel McAdams, who is obsessed with maintaining her power and control. Regina is a cold-hearted bully, but she’s far more interesting than the affable-but-vanilla Cady, whom you’re meant to root for.

It also doesn’t hurt that Regina has most of the best lines in Tina Fey’s script.

‘Gone Girl’ (2014)


Yet another acclaimed movie that featured a ruthless woman as its best character was 2014’s “Gone Girl.” Gillian Flynn, who wrote the bestselling novel upon which it was based, also wrote the screenplay and she didn’t tamp down the brutal nature of Rosamund Pike’s Amy one bit for the movie version. The plot follows a man who launches a public investigation after his wife goes missing, but the revelation that the woman herself was behind it and is enacting a complex act of revenge against him turns Amy into a legitimate villain.

She’s brilliant, beautiful, rich and able to pull off a plot so elaborate that she deserves a place alongside some of the best villains to come from the James Bond series. Amy is all you can think about when the film is over and the fact that she does it all without a trace of regret only makes her more amazing.

‘The Emperor’s New Groove’ (2000)


Disney’s “The Emperor’s New Groove” gives you a two-for-one package on villains who eclipse the hero. While David Spade’s Kuzco is a bit of a jerk himself, he’s definitely the protagonist of the movie, while Yzma and Kronk are the bad guys who stand in his way. The performances of Eartha Kitt and Patrick Warburton as those two villains make them the best part of the film and two of the most entertaining antagonists in Disney history. Yzma’s flawless style and Kronk’s incredible stupidity only make them more endearing.

‘Whiplash’ (2014)


Like “The Dark Knight,” 2014’s “Whiplash” saw the actor who played its villain win an Oscar for an unforgettable performance. In this intense drama, J.K. Simmons played a teacher at an elite music school and was essentially the educator from hell. He was an abusive bully at every turn and was completely unapologetic, even as he drove the main character, a young drummer played by Miles Teller, to despair. Despite this character being unlikable in every way, Simmons made him the best part of the entire movie.

‘No Country For Old Men’ (2007)


When a conversation about the best movie villains of recent memory starts, you can expect Anton Chigurh from “No Country For Old Men” to get mentioned. The shadowy, emotionless figure, played by Oscar winner Javier Bardem, is completely chilling as he roams the Texas countryside, killing at will. The heroes of the story, played by Tommy Lee Jones and Josh Brolin, are plenty memorable and strong in their own rights, but Bardem’s shaggy-haired villain steals every scene and even looms over the ones he isn’t part of.

‘Misery’ (1990)


The 1990 thriller, “Misery,” was yet another one that saw the actor playing its villain take home an Oscar, proving how memorable she was. In this case, it was Kathy Bates as a seemingly kindhearted nurse named Annie Wilkes, who looks after her favorite author after he gets in a car crash near her remote home. Annie is the obsessed fan taken to the most extreme level, but she comes off as a mild-mannered woman, which makes her infamous moment with the sledgehammer so much more shocking when it finally comes. James Caan does a great job as the writer held hostage, but this Stephen King story belongs to the villain.

‘There Will Be Blood’ (2007)


Sometimes, the villain is the main character of the movie and that’s what happened with the oil-drilling drama, “There Will Be Blood.” Daniel Day-Lewis dominates every moment of this epic story as the brooding Daniel Plainview, who is utterly ruthless in his quest to become an oil baron in the early 1900s. The “good guy” in the plot is a preacher, played by Paul Dano, who opposes Daniel at every turn until the very end. While neither character should be treated as a role model, Daniel is unquestionably the more evil of the pair — and is nonetheless the best character in the movie.

‘Training Day’ (2001)


When you sit down to watch the essential police drama, “Training Day,” you’re obviously supposed to align yourself with Ethan Hawke’s by-the-books officer — but the power of Denzel Washington’s crooked one is just too magnetic to deny. Washington won an Oscar for his portrayal of power-hungry LAPD Detective Sergeant Alonzo Harris, a character who essentially has no moral compass and treats his jurisdiction like his own personal kingdom. While Alonzo is obviously a terrible guy, he’s the character you’ll be quoting endlessly and talking about long after the movie ends.

‘A Nightmare On Elm Street’ (1984)


You can pretty much pick any of the movies in this long-running horror franchise for a spot on this list. While most of the serial killers depicted in slasher movies are stoic, impersonal psychopaths, Freddy Krueger from “A Nightmare on Elm Street” has a personality that’s as big as the blades sticking out of his glove. From his nonstop one-liners to his shape-shifting abilities in the nightmares of his victims, Freddy is far more entertaining than any of the vanilla protagonists that have opposed him over the years.

‘Cruel Intentions’ (1999)


A modern retelling of “Dangerous Liaisons,” 1999’s “Cruel Intentions” is known for its sexy characters and a plot that is dripping with erotic danger. The story of two rich but morally bankrupt teen stepsiblings, played by Ryan Phillippe and Sarah Michelle Gellar, and their attempt to corrupt a lily-white classmate, played by Reese Witherspoon, is full of shocking moments. While Witherspoon and Phillippe do great work in their roles, it’s Gellar, as the truly reprehensible yet irresistible Kathryn, who is the best part of the entire movie.

‘The Rocky Horror Picture Show’ (1975)


No disrespect to Susan Sarandon or Barry Bostwick but “The Rocky Horror Picture Show” is Tim Curry’s movie. In this beloved and bizarre musical, Curry plays the evil Dr. Frank-N-Furter, a scientist who’s as mad as he is horny. Between his jaw-dropping outfits and his unforgettable musical numbers, it’s easy to overlook the naive, white-bread heroes the plot follows and just look forward to every appearance by Curry’s villain.

‘The Wicker Man’ (1973)


In the immortal horror classic, “The Wicker Man,” the hero of the story is about as straight-laced and boring as they come — which ends up being key to the plot, without spoiling its shocking ending. Edward Woodward plays the deeply religious policeman, who travels to a remote Scottish island in search of a missing girl and uncovers a society of pagans who shake him to his core. It’s the inhabitants of the island, led by Christopher Lee, who are by far the most interesting parts of the movie, even if they are clearly painted as the villains.

‘New Jack City’ (1991)


Like many of the choices on this list, the villain in “New Jack City” is larger than life and dominates the screen any time he appears. In this stylish crime drama, Wesley Snipes plays Nino Brown, a ruthless drug lord who crushes his community in order to make obscene amounts of money and grow his power. The police officers who try to bring Nino down, played by Mario Van Peebles, Ice T and Judd Nelson, are quite memorable in their own ways, but it’s Snipes who truly captivates your attention from start to finish.

‘Blue Velvet’ (1986)


The young protagonist at the center of “Blue Velvet” is naive and somewhat devoid of personality when the story begins, which only makes the over-the-top villain he meets more engrossing. That evil character is a drug dealer named Frank Booth, played by Dennis Hopper, and he’s a sadistic bully whose behavior is completely unpredictable. While rooting for Frank would be a bridge too far, he’s infinitely more memorable than Kyle MacLachlan’s hero, thanks to his bizarre dialogue and constant huffing from a tank of unidentified gas.

There’s a reason the American Film Institute named Frank one of the 50 greatest villains in movie history.

‘Red Dragon’ (2002)


The brilliant psychopath Dr. Hannibal Lecter, played by Anthony Hopkins, is one of the most memorable bad guys in movie history and he’s one of two great villains featured prominently in 2002’s “Red Dragon.” The other is a twisted serial killer named Francis Dolarhyde, aka the “Tooth Fairy,” played by Ralph Fiennes. The combination of those two great actors, as well as the human elements added to Fiennes’ role, make the villains of “Red Dragon” more memorable than Edward Norton’s FBI investigator Will Graham.

‘Unbreakable’ (2000)


As you’re watching this superhero drama from M. Night Shyamalan unfold, you’re not exactly sure who the main villain is, so when it’s revealed to be the most interesting character in the story, you’re left feeling conflicted. Bruce Willis plays the heroic David Dunn, a regular guy who discovers he has the superhuman ability to avoid injury or illness, while Samuel L. Jackson plays Elijah Price, aka “Mr. Glass,” whose frail bones give him the exact opposite condition. Jackson’s character is easily the more affecting of the two, which makes his eventual heel turn a real gut punch.

‘Beetlejuice’ (1988)


One of director Tim Burton’s early hits is named after the villain, which makes it clear from the start that he will be the star of the show. Michael Keaton chews up the scenery and steals the spotlight every chance he gets as the titular ghost who tries to escape the afterlife by coercing a sensitive young girl to marry him. While “Beetlejuice” is full of a lot of dark fun, the original script apparently saw Keaton’s character being more blatantly evil than simply mischievous.

‘The Hobbit: The Desolation Of Smaug’ (2013)


While the Hobbit film trilogy didn’t reach the same level of acclaim as the Lord of the Rings trilogy, it did give us one of the best villains in movie history. The second chapter of the saga follows the heroic Hobbit, Bilbo Baggins, as he ventures into the Lonely Mountain, which serves as the lair to a greedy and fearsome dragon named Smaug. That massive creature was brought to life in a terrifying manner by the film’s visual effects artists and voiced perfectly by Benedict Cumberbatch, who is so electric in his performance that it almost makes you side with Smaug.

The heroes of the Hobbit series are great on their own, but they were outshined by the massive flying beast in the title this time.