A good movie is filled with a cast of characters, from the protagonist, who is typically the hero of the film, and the antagonist, who is generally the villain, to the deuteragonist (secondary characters, like a friend or ally) and romantic interest. No film is complete without some or all of these roles. While some are often seen as more important than others – after all, what movie can be complete without the protagonist – each role is a necessary component of a film. Especially the villain. After all, there can be no hero without forces of evil to overcome, and the most iconic villains in movie history certainly gave the heroes something to fight for.
Villains aren’t merely an obstacle in a film. They are characters essential to the story who add dimension and often inspire increased levels of audience engagement. Viewers don’t always root for the hero and against the villain anymore. We sometimes root for both. Because sometimes, audiences can sympathize with an evil character. (These are the best disaster movies of all time.)
To compile a list of the most iconic villains in movie history, 24/7 Tempo exercised editorial discretion to determine performances that made a particularly lasting impression of evil, gleaning information on production dates and casting from IMDb, an online movie and TV database owned by Amazon.
Dracula
- Movie: “Dracula” (1931)
- Played by: Bela Lugosi
Lugosi first portrayed Dracula on Broadway before tackling the role in a big-screen adaptation. It helped launch his subsequent career as a monster movie icon from the 1930s through to the 1950s.
Miss Gulch/ The Wicked Witch of the West
- Movie: “The Wizard of Oz” (1939)
- Played by: Margaret Hamilton
A wealthy landowner, Miss Gulch threatens to have Toto put to sleep during the early scenes of this classic film. She’s reimagined by Dorothy as the Wicked Witch of the West, who terrorizes Oz with her army of flying monkeys. Actress Margaret Hamilton plays both characters.
Mrs. Danvers
- Movie: “Rebecca” (1940)
- Played by: Judith Anderson
Judith Anderson received an Oscar nomination for her performance as Mrs. Danvers, the primary antagonist of Hitchcock’s romantic thriller. Devoted to her former mistress, Danvers psychologically torments the estate owner’s new wife.
Phyllis Dietrichson
- Movie: “Double Indemnity” (1944)
- Played by: Barbara Stanwyck
Stanwyck’s Oscar-nominated turn as Phyllis Dietrichson set a benchmark for femme fatale performances in film noir. The effortlessly cunning character seduces an insurance agent (Fred MacMurray) into a scheme involving fraud and murder.
Veda Pierce
- Movie: “Mildred Pierce” (1945)
- Played by: Ann Blyth
As the foil to her mother’s hard-working ambitions, Veda Pierce takes the concept of a spoiled child to murderous extremes. Played by Ann Blyth in this 1945 film adaptation, the character was later portrayed by Evan Rachel Wood in a 2011 mini-series. Both versions were based on noir specialist James M. Cain’s novel of the same name.
Mr. Potter
- Movie: “It’s A Wonderful Life” (1946)
- Played by: Lionel Barrymore
Oscar-winning actor Lionel Barrymore provided the voice of Ebenezer Scrooge for the radio drama of “A Christmas Carol” in the early 1940s. That made him a perfect fit for the miserly Mr. Potter, who tries to drive George Bailey (James Stewart) out of business in director Frank Capra’s holiday classic.
Harry Powell
- Movie: “The Night of the Hunter” (1955)
- Played by: Robert Mitchum
This noirish thriller flopped upon its debut but gained a loyal following over time, influencing directors such as Martin Scorsese. Its story is primarily powered by Robert Mitchum’s stone-cold performance as the ruthless con man Reverend Harry Powell, who has “LOVE” and “HATE” tattooed on his knuckles. The character was voted 29th on AFI’s list of top movie villains. This is the only film directed by famed actor Charles Laughton.
Dracula
- Movie: “Horror of Dracula” (1958)
- Played by: Christopher Lee
Christopher Lee made his first appearance as Dracula in this British adaptation, which was followed by multiple sequels. Time Out film critic David Jenkins described Lee as “a menacing and complex presence who never lets his fangs and cape dominate.”
Norman Bates
- Movie: “Psycho” (1960)
- Played by: Anthony Perkins
The homicidal caretaker of a nondescript motel, Norman Bates set an early template for the slasher sub-genre in this Hitchcock classic. Actor Anthony Perkins imbues Bates with a palpable psychological dimension, making the film something of a character study. He would reprise the role in three sequels.
“Baby Jane” Hudson
- Movie: “Whatever Happened to Baby Jane?” (1962)
- Played by: Bette Davis
An act of pure jealousy looms over this haunting horror classic, about the bitter relationship between two former showbiz sisters. When crafting her performance, Bette Davis may have drawn inspiration from her real-life animosity toward co-star Joan Crawford. Their behind-the-scenes rivalry was the subject of the recent FX series “Feud.”
Goldfinger
- Movie: “Goldfinger” (1964)
- Played by: Gert Fröbe
This iconic Bond film is credited with cementing several franchise stalwarts. It also introduced the eponymous villain, who’s every bit as obsessed with gold as his name would suggest. His henchman Oddjob – played by Harold Sakata – deserves a place, too, in the annals of big-screen bad guys.
Alex
- Movie: “A Clockwork Orange” (1971)
- Played by: Malcolm McDowell
Star Malcolm McDowell is said to have spent years resenting Kubrick’s subversive masterpiece before coming to grips with its many artistic merits. He plays the leader of a ruthless future gang, for whom no crime is too amoral. A villain perhaps, but Alex is also the film’s protagonist.
Damian
- Movie: “The Omen” (1976)
- Played by: Harvey Stephens
Damian is literally the child from hell in this horror hit, which spawned multiple sequels. Harvey Stephens, who plays the character in the original, has only three credited film roles to his name, including a bit part in the 2006 remake.
Szell
- Movie: “Marathon Man” (1976)
- Played by: Laurence Olivier
British actor Laurence Olivier was an award-winning veteran of stage and screen by the time he played a Nazi war criminal in this taut thriller. He and co-star Dustin Hoffman reportedly clashed behind the scenes over Hoffman’s infamous style of method acting.
Josef Mengele
- Movie: “The Boys From Brazil” (1978)
- Played by: Gregory Peck
This grim thriller follows two Nazi hunters as they track down a secret organization with plans to resurrect the Third Reich. The story gets all the more bizarre when it leads to Dr. Josef Mengele, who’s been inseminating women with Adolf Hitler’s DNA. According to legend, Peck only accepted the role for a chance to work with co-star Laurence Olivier.
Michael Myers
- Movie: “Halloween” (1978)
- Played by: Tony Moran
The modern era of horror arguably begins with this indie blockbuster and its knife-wielding antagonist. After escaping from a mental institution, Michael Myers returns to his hometown and wreaks homicidal terror throughout a single night. An endless string of sequels, reboots, and remakes would follow.
Jack Torrance
- Movie: “The Shining” (1980)
- Played by: Jack Nicholson
Hotel caretaker Jack Torrance descends into madness in this chilling adaptation of a Stephen King novel. Director Stanley Kubrick frequently changed the script and demanded numerous takes from his actors, which took its own psychological toll behind the scenes.
Belloq
- Movie: “Raiders of the Lost Ark” (1981)
- Played by: Paul Freeman
Indiana Jones’ main rival, French archaeologist René Emile Belloq helps the Nazis locate the Ark of the Covenant. The character also appears in novelizations, comic books, and the 3-D computer-animated short “LEGO Indiana Jones and the Raiders of the Lost Brick.”
Emperor Palpatine
- Movie: “Star Wars: Episode VI – The Return of the Jedi” (1983)
- Played by: Ian McDiarmid
Darth Vader’s superior, Emperor Palpatine is the ancient embodiment of pure and powerful evil. He debuted as a holograph in “The Empire Strikes Back,” featuring a different appearance and voice that was retroactively replaced. Scottish actor Ian McDiarmid is now synonymous with the character, who tortures Luke Skywalker in the first trilogy’s final installment.
Freddy Krueger
- Movie: “A Nightmare on Elm Street” (1984)
- Played by: Robert Englund
With his sharp-witted tongue and razor claws, Freddy Krueger leaped into the imaginations of victims and viewers alike. Robert Englund brought a singular comedic presence to the character, playing him in multiple sequels and also hosting the TV spin-off, “Freddy’s Nightmares.” (A reboot is scheduled for 2025 and will star Jenna Ortega and original Freddy, Robert Englund.)
Alex Forrest
- Movie: “Fatal Attraction” (1987)
- Played by: Glenn Close
Close’s performance as a mistress scorned was so effective that it reportedly saved real-life marriages by scaring potential adulterers. It also inspired countless imitations, fueling a “from hell” sub-genre that continues to this day.
Hans Gruber
- Movie: “Die Hard” (1988)
- Played by: Alan Rickman
Rickman’s extensive background in theater brought serious gravitas to international terrorist Hans Gruber, one of the most iconic villains in action movie history. More impressively, this was the actor’s first major role in a theatrical feature film.
Annie Wilkes
- Movie: “Misery” (1990)
- Played by: Kathy Bates
A celebrity’s worst nightmare, Annie Wilkes entraps and then tortures her favorite author (James Caan) in this classic thriller. Kathy Bates delivered a breakout performance as the crazed character, taking home an Oscar for Best Actress.
Tommy DeVito
- Movie: “Goodfellas” (1990)
- Played by: Joe Pesci
Scorsese’s gangster epic features no shortage of legendary performances, but Pesci’s turn as Tommy DeVito was the most talked-about of them all. It won him the Oscar for Best Supporting Actor and gave way to a string of major film roles.
Buffalo Bill
- Movie: “The Silence of the Lambs” (1991)
- Played by: Ted Levine
One of two terrifying characters in this seminal crime drama, Buffalo Bill was reportedly inspired by real-life serial killer Ted Bundy. Actor Ted Levine also drew upon glam rockers such as David Bowie and Lou Reed when crafting his now-controversial performance.
Hannibal Lecter
- Movie: “The Silence of the Lambs” (1991)
- Played by: Anthony Hopkins
Hopkins studied tarantulas and crocodiles in preparation for his Oscar-winning role as the reptilian-like Dr. Hannibal Lecter. Voted by the AFI as the most famous villain in movie history, the character has appeared in numerous books, films, and TV shows.
Max Cady
- Movie: “Cape Fear” (1962)
- Played by: Robert Mitchum
Robert Mitchum reportedly turned down the role of psychotic revenge-bent rapist Max Cady until director J. Lee Thompson and would-be co-star Gregory Peck sent him flowers and a case of bourbon. He ended up turning in one of the most famous performances of his long career, and his Cady was named AFI’s No. 28 villain – one slot ahead of Harry Palmer, the part he played in “The Night of the Hunter” (see above).
Max Cady
- Movie: “Cape Fear” (1991)
- Played by: Robert De Niro
Robert De Niro re-teamed with longtime collaborator Martin Scorsese for this stylish remake of the 1962 Robert Mitchum-starring thriller. Against the backdrop of a menacing score, ex-convict Max Cady enacts a deadly revenge scheme against his former lawyer (Nick Nolte). This is De Niro at his most unhinged and his performance is riveting.
Catherine Tramell
- Movie: “Basic Instinct” (1992)
- Played by: Sharon Stone
The foremost femme fatale of the modern movie era, author Catherine Tramell lures a troubled detective (Michael Douglas) into her psychological web. Between Stone’s iconic performance and Paul Verhoeven’s brilliant direction, the film turns tawdry indulgence into high art. Both talents offer differing accounts of the famous leg-crossing scene to this day.
Hedy Carlson
- Movie: “Single White Female” (1992)
- Played by: Jennifer Jason Leigh
In the vein of “Fatal Attraction” came this 1992 thriller, starring Jennifer Jason Leigh as the roommate from hell. It dials up the horror element and suffers as a result, though a murder scene involving a stiletto heel certainly had people talking.
Peyton Flanders
- Movie: “The Hand That Rocks the Cradle” (1992)
- Played by: Rebecca De Mornay
Another entry in the “from hell” sub-genre, this blockbuster thriller centers on demented nanny Peyton Flanders. Scarred by personal tragedy, Flanders seeks revenge on the family she holds responsible for her suffering. “This is De Mornay’s film and she’s a wicked treat,” wrote critic Michael Upchurch for the Seattle Times.
Amon Goth
- Movie: “Schindler’s List” (1993)
- Played by: Ralph Fiennes
SS Officer Amon Göth oversaw countless atrocities during the Holocaust, many of which are depicted in Speilberg’s sobering historical drama. The real-life figure was eventually charged with war crimes and executed not far from the Płaszów concentration camp. In preparation for the role, Ralph Fiennes reluctantly immersed himself in Nazi propaganda materials.
Drexl Spivey
- Movie: “True Romance” (1993)
- Played by: Gary Oldman
Gary Oldman is nearly unrecognizable as pimp and drug dealer Drexl Spivey in this cult classic. Rocking dreadlocks and a Jamaican accent, he gets maximum impact out of precious little screen time. The actor personally suggested physical details for the character such as the facial scars and white eye.
Mitch Leary
- Movie: “In the Line of Fire” (1993)
- Played by: John Malkovich
This political thriller alternates between a secret service agent (Clint Eastwood) and a would-be assassin (John Malkovich) as the story builds toward its momentous climax. Malkovich injects the character with a calm and unnerving quality and lends the film its most compelling dimension. His performance earned critical accolades and an Oscar nomination.
Lestat
- Movie: “Interview with the Vampire: The Vampire Chronicles” (1994)
- Played by: Tom Cruise
This adaptation of Anne Rice’s best-selling novel features Tom Cruise in one of his few villainous roles. His galvanized turn as an immortal vampire was arguably the highlight of an otherwise mediocre film. Anne Rice herself was initially opposed to the casting of Cruise, but she became a quick convert after seeing his performance.
John Doe
- Movie: “Se7en” (1995)
- Played by: Kevin Spacey
Every bit as elusive as his name would suggest, serial killer John Doe (Kevin Spacey) commits a series of heinous murders in an unnamed city. He emerges in the final act as part of a grim and meticulous plan and things only get darker from there. To reinforce an element of intrigue and surprise, actor Spacey isn’t listed in the film’s opening credits.
Keyser Soze
- Movie: “The Usual Suspects” (1995)
- Played by: Kevin Spacey
The same year he played a serial killer in “Se7en,” Kevin Spacey starred as a criminal mastermind in this acclaimed thriller. Under the guise of a wimpy alter-ego, Keyser Soze manipulates the investigation of a mysterious massacre. And for anyone who hasn’t seen the film yet, we apologize for spoiling one of the greatest reveals in movie history.
Agent Smith
- Movie: “The Matrix” (1999)
- Played by: Hugo Weaving
With his emotionless tone and delivery, Weaving perfectly captures the essence of computer-made flesh in this sci-fi masterpiece. His ability to replicate himself or appear at any time makes him quite the formidable foe, and a seminal fixture of the original trilogy.
Emperor Commodus
- Movie: “Gladiator” (2000)
- Played by: Joaquin Phoenix
Joaquin Phoenix announced himself as one of the best actors of his generation with this Oscar-nominated performance. The devious son of an emperor, Commodus murders his own father and seizes power in ancient Rome.
Eric Lensherr/Magneto
- Movie: “X-Men” (2000)
- Played by: Ian McKellen
Magneto finds enemies on all sides in this comic book adaptation, which pits him and his minions against both the X-men and the U.S. government. Actor Ian McKellen reprised the role in a blockbuster sequel, which expands upon the character’s backstory and continues his reign of terror.
Patrick Bateman
- Movie: “American Psycho” (2000)
- Played by: Christian Bale
A darkly satirical novel by Bret Easton Ellis laid the groundwork for this film adaptation, in which businessman Patrick Bateman dispenses music trivia and murder. The character’s casual sociopathy and obsession with status provided a grim mirror to New York’s shallow yuppie culture. Christian Bale’s status as an enduring movie icon arguably starts here.
Norman Osborn/Green Goblin
- Movie: “Spider-Man” (2002)
- Played by: Willem Dafoe
Playing scientist Norman Osborn, Dafoe experiments on himself and unleashes the monstrous alter-ego Green Goblin. The character was one among several supervillains to reappear in the recent blockbuster “Spider-Man: No Way Home.”
ScareCrow
- Movie: “Batman Begins” (2005)
- Played by: Cillian Murphy
Using a powerful hallucinogen to render his victims insane, ScareCrow was quite unlike any previous villain in the history of Batman movies. His method of madness bore unique ties to Bruce Wayne’s backstory and helped whet audience palates for Christopher Nolan’s trilogy in general.
Anton Chigurh
- Movie: “No Country for Old Men” (2007)
- Played by: Javier Bardem
Bardem’s Oscar-winning performance as cold-blooded assassin Anton Chigurh lent this Coen brothers classic the air of a horror movie. Equal parts relentless and emotionless, the character tracks down his prey with the dedication of a Terminator.
The Joker
- Movie: “The Dark Knight” (2008)
- Played by: Heath Ledger
Batman’s most iconic adversary, the Joker has never been more calculating or nihilistic as he is in this beloved sequel. The premature death of actor Heath Ledger has only added to the enduring mythology surrounding his legendary performance.
Esther
- Movie: “Orphan” (2009)
- Played by: Isabelle Fuhrman
A couple’s newly adopted daughter is not what she seems in this chilling psychological horror flick. “Fuhrman’s delightfully mordant turn and a staggering final reel curveball make this the most unconventional ‘killer kid’ film of recent years,” wrote critic Howard Gorman for NME.
Fergie Colm
- Movie: “The Town” (2010)
- Played by: Pete Postlethwaite
Ben Affleck’s heist movie offers plenty of unsavory characters, many of whom report to mob boss Fergus “Fergie” Colm. Hiding in plain sight, the Boston-based gang leader moonlights as the unassuming owner of a local flower shop.
Pennywise
- Movie: “It” franchise (2017)
- Played by: Tim Curry/Bill Skarsgård
Tim Curry and Bill Skarsgård offered different but equally chilling performances of Pennywise in separate adaptations of Stephen King’s sprawling novel. While most often taking the form of a clown, the character is actually an ancient evil fueled by childhood fear and imagination.
Darth Vader
- Movie: Star Wars films
- Played by: David Prowse (voice: James Earl Jones)
Darth Vader rendered an instant impression by way of his ventilator-like breathing, terrifying appearance, boomy voice, and accompanying theme music. Despite his commitment to the dark side, the character eventually reveals conflicting emotions and a tragic backstory. He remains a pop culture stalwart whose legacy looms over the “Star Wars” franchise and beyond.
Gollum
- Movie: “Lord of the Rings” trilogy
- Played by: Andy Serkis
A former Hobbit, Gollum was mentally and physically altered by his possession of the all-powerful ring. Brought to life via game-changing CGI, the character tries to regain his “precious” by any means necessary. Actor Andy Serkis would go on to voice Caesar in the “Planet of the Apes” franchise and direct the latest “Venom” movie, among other things.
Lord Voldemort
- Movie: “Harry Potter” movies
- Played by: Ralph Fiennes
The darkest of dark wizards, Lord Voldemort is so evil that people don’t dare utter his name. Ralph Fiennes nearly turned down the role until his sister and her kids convinced him to accept it. Both the book and film series build toward the character’s showdown against Harry Potter.