Gotham’s season 3 has just reached its epic finale, leaving fans with a huge gaping hole in their lives for the next three months.

While Gotham might be told as the story of James Gordon, or Bruce Wayne’s journey to becoming the Batman, it’s the villains who are the real stars of the show. Villains have always been the highlight of any Batman story - from comics to TV to movies - and FOX’s Gotham is no different. "Season 2: Rise of the Villains" was dedicated to seeing the characters bloom into their sinful selves before our eyes, as was season 3’s first half: "Mad City" (the second half: "Heroes Rise" was still all about the heroes, really).

There’s been plenty of villains introduced over the 3 seasons, some more prominent than others, and some that we’ve only seen passing glances of. While we wait to see how the writers are going to tie up all the loose threads season 3’s finale left dangling, here’s 18 of Gotham’s Villains, Ranked From Worst To Best; based on their villainy skills, how interesting and enticing a character they are, and in some cases, just how annoying they are to watch.

18. Fish Mooney

Gotham Season 3 Fish Mooney Will Return

Starting out as a pretty awesome femme fatale, Fish Mooney's origins as part of the complex Gotham crime family made her a strong woman in a man’s world. But to anyone who knows anything about the Penguin’s backstory, it was obvious she was just a plot device to introduce the Oswald Cobblepot/Penguin character.

Any characters who haven’t appeared in the comic book history of Batman are risky ground, and once Fish (played by Jada Pinkett Smith) had "created’"Penguin, it seemed pointless having her around. Her first - yes, first - death came at a good time, but then bringing her back as an experimental subject in Indian Hill seemed like a pointless subplot. Her disappearance after escaping from Indian Hill was more relieving than intriguing, but then she came back later in the series anyway. Hopefully her second death, at the hands of Tetch virus-infected Jim Gordon, will be her last.

17. Tabitha Galavan

Tabitha Galavan has been a sidekick all through her time in Gotham, first to her brother, the former Mayor of the city, and then to Barbara Keane. It hasn’t been much of a secret though that Tabitha (played by Jessica Lucas) will become the shows version of the villain Tigress, and the season 3 finale seems to have pushed her into that title.

Despite Tabitha wearing black leather/latex, and brandishing a whip, a very different look to Tigress in the comics, it’s been pretty obvious for a while that she was going to have some involvement in the origins of Catwoman (Butch shortening her name to Tabby was a pretty cheesy cat pun in the season finale’s dialogue). But it’s taken two seasons for her and Selina to have a little moment.

Now that she’s apparently killed her old partner/boss, Barbara, it would seem we’re going to be seeing more of her than ever before - and the real start to the Tigress’ legacy.

16. Kathryn Monroe

The Court of Owls have been a huge part of season 3, and the main focus of the later part of the season, seemingly affecting almost every character in the show in some way. They've kidnapped the Penguin and the Riddler, caused personal and professional turmoil for Jim Gordon, replaced Bruce Wayne with a creepy copy, tried to infect the entire city with a deadly virus. The Court are undoubtedly villainous, and directly or indirectly have been the cause of most of the villainous activity in the city from the start (they also ordered Professor Strange to do his experiments in Season 2).

But the Court’s leader, Kathryn Monroe (Leslie Hendrix in real life), lets the side down. Is her identity meant to be secret? Because the way she picks and chooses whether she’s going to wear her mask or not made that confusing. And why is she so against chaos in Gotham, when she’s wanted to destroy the city several times? It just doesn’t make sense.

15. Leslie "Lee" Thompkins

Morena Baccarin as Leslie Thompkins Gotham (Lee) infected with Tetch Virus

Prior to becoming one of the many bad guys in Gotham, Lee’s character had more downs than ups, and refused to let the little thing of ex-fiance Jim Gordon killing her new husband go. She’s always been portrayed (and well acted by Morena Baccarin) as a strong woman, even if her emotions get the better of her quite frequently.

She was only a villain for a short period at the end of the third season, but the reason why this sucks so much and diminishes such a good character is that pretty much everything about her transformation felt forced. Hanging onto the whole "Jim killed her husband" thing from what feels like ages ago, Lee injected herself with the Tetch virus for… complicated reasons.

When she does infect herself with the virus, the way her evilness was portrayed was laughable. It’s always sad when a show or movie turns a character a bit goth to represent their bad side, but seeing Lee change her hair slightly and wear dark eye makeup was just cringe-worthy on a show that has so many suave, sultry and cool villains.

14. The Temple Shaman

In the comics, the Shaman is a part of the League of Assassins, an experienced martial artist, and has nothing to do with the Court of Owls. In the Gotham TV series, he largely comes across as an acupuncture obsessed old man who has been torturing and brainwashing lil Bruce for the fun of it, and runs the Court of Owls for some reason.

Some fans speculated that the Shaman was Ra’s al Ghul for a short while, before it was announced Alexander Siddig would be playing the infamous Batman adversary, and it turned out the Shaman (played by Raymond J. Barry) just worked for Ra’s.

The scenes in which we saw Bruce undergo his "training" were pretty boring due to the Shaman’s dry personality, and he just wasn’t very scary or intimidating. While he did a good job of brainwashing Bruce - to the point that he got him to kill the ever heroic voice of reason Alfred - it all just felt like a forced way to tie things up and postpone the appearance of the villain we all want to see: Ra’s al Ghul.

13. Hugo Strange

Hugo Strange smiling suspiciously in Gotham

Hugo Strange has played a huge part in the creation of many Gotham villains, making himself one of the shows most notorious bad guys. At his seedy Indian Hill lab, located underneath the great Arkham Asylum, he created Mr. Freeze, Azrael, Firefly, Clayface and various other villains through his experiments. He also ordered the hit on the Wayne family, and his gross corpse tanks gave us hope that Jerome would return after his shocking demise in season 2.

There’s just something about the doc (played by BD Wong) that makes him irritating. Maybe it’s the chin beard, maybe it’s the way he goes all croaky at the end of sentences, maybe it’s his gutless personality for such an evil genius. Maybe it’s because he brought Fish Mooney back from the dead. It’s hard to stay mad at him, though, when he helped create such brilliant villains, including the glorious antagonist and future Joker, Jerome Valeska (even if he didn’t actually resurrect Jerome himself).

12. Bridgit Pike/Firefly

Bridgit Pike, aka Firefly, has one of the darkest backstories for any character in Gotham, and is the first female incarnation of Firefly, as well as the first version of the character that hasn’t been given the ability of flight. An orphan abused by brothers she later killed, experimented on and brainwashed by Professor Strange, and set on fire - causing her suit to be melted to her body, Bridgit Pike (played by Michelle Veintimilla) has had a rough time for a teenage girl.

She’s not an intrinsically terrible villain, but it feels like so much more could be done with the character. Currently she’s just one of the Penguins minions, paired up with Mr. Freeze - to Bridgit's dismay. The pair previously had a fight in which Freeze attacked and Firefly saved her friend Selina Kyle - they create a rather cliche hot/cold team, and haven’t been given much time to shine yet.

11. Mr. Freeze

Victor Freeze

Another character that hasn’t been given the opportunity yet to show their full potential, Victor Fries (played by Nathan Darrow) quickly became known as Mr Freeze, but has yet to show his true powers as the notorious stone cold Batman villain.

His backstory was actually quite sweet, as far as Gotham backstories go - all he wanted was to cryogenically freeze his terminally ill wife, Nora, until a cure for her disease was found. Unfortunately he decided a good way to test the cure was on innocent members of the public, so even before his big accident turned him into the Mr. Freeze we’re all familiar with, he was pretty twisted - pure intentions or not.

The three seasons have felt like more villains have been introduced than the writers know what to do with at times, so hopefully season 4 will give Victor Fries more opportunity to become the great Mr. Freeze we’re all waiting for.

10. Jervis Tetch

Gotham season 3 - The Mad Hatter (Benedict Samuel)

Jervis Tetch (brought to life by Benedict Samuel), now known as the Mad Hatter, has been a big part of season 3, and even though he’s not been around much towards the end, was the cause of all the trouble, with his Tetch virus, made from his sister’s DNA, wreaking havoc all over town.

This guy is a creep, through and through. It’s never shown but heavily implied, that while acting as his sister’s guardian after their parents’ death, he sexually and emotionally abused her, having a seemingly weird idea of what sibling love should be.

His rhyming speech can get irritating at times, but fans of Batman comic books will know he’s this way on paper too. There’s not much to dispute in how good he is at being a bad guy. He’s perverted, manipulative - thanks to his hypnotism skills - creative (check out the newspaper top hat he made while at Arkham!); all traits that make him a brilliant villain and a powerful nemesis for Jim Gordon.

9. Ivy Pepper

Gotham season 3 - Maggie Geha as Poison Ivy

Yet another character that hasn’t had chance to show her true villainy yet, Ivy Pepper (played by Maggie Geha) made her first appearances early on in the series, as the daughter of a criminal father and mentally unstable mother. She became orphaned, and fended for herself, with the help of Barbara Kean and Selina Kyle. Ivy got on the wrong side of Fish Mooney, and while escaping from her gang, she fell into a water drain. Emerging an unknown amount of time later, she appears a lot older than she was before.

As this grown woman, we’ve already seen Ivy’s plant power, and how easily she can use her plants to manipulate who she wants to get what she wants. She’s also revived Selina after a serious fall. Here’s hoping season 4 sees her become the supervillain Batman fans have loved for years. Even if the whole aging thing kinda feels like the writers just messed up the casting in the beginning and added in a plot to rectify their mistake.

8. Nathaniel Barnes/The Executioner

Executioner Gotham

As a super strict captain of the GCPD, Captain Barnes (played by Michael Chiklis) was a thorn in Jim Gordon and Harvey Bullock’s sides, which made it all the more shocking when he became a villain. Another victim of the Tetch virus, Barnes became the Executioner; a ruthless anti-hero, taking the law into his own hands.

He was an annoying captain, constantly causing issues for Jim and Harvey, which made a character that fans loved to hate. He’s not exactly a perfect villain either, his cry of "I am the judge, jury, and Executioner!" is a bit cheesy, but his armored suit and hand blade make for a cool-looking bad guy. His sheer lack of remorse when savagely killing his victims adds to his wretchedness.

Perhaps his best moment though has been his attack on the Court of Owls at the GCPD precinct, when he brutally decapitated Kathryn Monroe in one of the shows most gloriously gruesome moments.

7. Butch Gilzean

Butch Gilzean (brought to life by Drew Powell) has been the right hand man of nearly every mob boss and kingpin in Gotham, and it feels like he himself could be the one running the city if he just had the guts. He’s a strong adversary for his enemies, and prides himself on knowing everything that needs to be known about Gotham.

His lack of guts could subside, though, as it was revealed in the season finale that his real name is Cyrus Gold, and anyone that’s familiar with Batman history, will know Cyrus Gold becomes a rather notorious supervillain.

This conjures up so many questions we hope get answered in season 4, like when will he actually become the villain? How will they portray him visually? Will he be a supervillain or, like his comic book counterpart in various versions of the character, an anti-hero? Let’s cross our fingers that we get some answers in late 2017.

6. Theo Galavan/Azrael

James Frain as Theo Galavan in Gotham Season 2

Not many characters in comic book folklore have become two different villains, but Gotham’s own creation Theo Galavan (played by James Frain) has. Way more sophisticated and villainous than his sister, Theo first became the evil Mayor of Gotham, after entering the city with orders from his ancestors (the St. Dumas family) to kill Bruce Wayne.

After Jim Gordon took down Theo, his body was taken to Indian Hill. Here Hugo Strange successfully resurrected Theo, one of his earliest experimental subjects, and Theo took the mantle of Azrael, an important character in the St. Dumas history. Strange conditioned him into the character, and gave him orders to kill Jim Gordon.

He was another ruthless villain, again thanks to Strange removing the majority of his humanity during his experiments. Galavan even went as far as stabbing his beloved sister, calling her a traitor for betraying him. Thankfully Azrael didn’t succeed in either of his missions of taking out Jim Gordon or Bruce Wayne, but came close to both. He got the brutal and shocking death he deserved, as a brutal and shocking villain, when Butch Galzean blew him up with a rocket launcher.

5. Selina Kyle

Camren Bicondova as Selina Kyle aka Catwoman on Gotham TV Show

Serving as a major recurring character from the beginning, Selina Kyle (played exceptionally by Camren Bicondova) has always made it obvious that one day she will be Catwoman. Her cat-like agility, as well as her love for felines and black leather clothing make her a perfect Plundering Kitten. She was even given the nickname of "Cat" in season 1. The chemistry between her and Bruce has always been faultless too, with just the right level of stubbornness, lack of patience, and deep down love between them that Catwoman has always shared with Batman.

She even had a moment in season 3 that paid a great homage to Michelle Pfieffer’s transformation into Catwoman in Batman Returns, when she was pushed through a window by Bruce’s clone, seemingly to her death, before cats swarmed around her. Nothing has really been mentioned of this scene, but after the Season 3 finale saw her getting close to Tabitha Galavan, and already being a dab hand with a whip, it can’t be long before she starts wearing a full (but hopefully more modest than previous incarnations - she is only a teenager after all) Catwoman costume.

4. Oswald Cobblepot/Penguin

Gotham season 3 - Penguin (Robin Lord Taylor)

Oswald Cobblepot has been a great character from the beginning. Starting out as Fish Mooney’s devious umbrella boy (giving an explanation to Penguin’s affiliation with umbrellas), betraying her and making a name for himself, coming back from the dead, befriending the rising villain Edward Nygma (a couple of brilliant episodes in season 2 come to mind) becoming the Mayor of Gotham, getting "killed" by Nygma, and then coming back from the dead again. Penguin (played charmingly by Robin Lord Taylor) has done it all, and he’s done it all with style.

Perhaps the only fault to the character is just how emotional he is. A real villain should be remorseless, and cold. While Penguin can be cold, he is ruled by his heart more often than not. His almost unconditional and completely unrequited love for Ed added a twist to the character many fans didn’t see coming, and not all agreed with. But it gave an insight into the real Oswald, and while he might not be a perfectly stereotypical villain, his characteristics make him one of the show’s most human and relatable rogues.

3. Barbara Kean

Barbara Kean with knife in Gotham

With one of the darkest backstories in the show - she was brainwashed by the Ogre into killing her own parents - it’s no wonder Barbara (brought to life fantastically by Erin Richards) is mentally unstable. One of the most career-driven villains in the show, Barbara will stop at nothing to get what she wants.

Of course, the little thing of being fatally electrocuted by Tabitha in the season 3 finale might slow her down for a while, but death hasn’t stopped most of the villains so far.

There’s rumors that Barbara will become Harley Quinn, which is a huge change from the comic version of both characters. In the comics, Barbara is the wife of Jim Gordon and mother to Batgirl, and Harleen is an Arkham psychiatrist who’s brainwashed by the Joker. If the show can successfully mash up these stories - and by making Barbara a psychotic villain, they’re already halfway there - the creators will have really proven their writing talents.

Even if she doesn’t become Harley, Barbara will always be one of the show's best villains, because she’s willing to do the dirty work, and does it with such great style, drive, charisma, and just the right amount of insanity.

2. Jerome Valeska

Gotham - Jerome and Bruce

Appearing in only seven episodes so far, Jerome’s quick descent to the dark side granted fans the wish that despite not having their Batman just yet, they had their greatest villain of all time: the Joker. That hope was dashed when Jerome was killed by Theo Gallavan, and show execs tried telling us Jerome was just the start of the Joker’s legacy.

This came as a massive shock, as Jerome (masterfully played by Cameron Monaghan) would undoubtedly be the perfect Joker, combining all the best aspects from every other on-screen incarnation of the character into one brilliant villain. And he absolutely nails the iconic laugh.

His return in season 3 saw Jerome raised from the dead and getting his face stolen, which he then stapled back on, in one of the series’ greatest scenes. The image was magnificently disgusting, and seeing Jim Gordon literally punch his face off was just glorious.

Jerome’s chemistry with Bruce has been perfect so far too, with the hall of mirrors scene in season 3, episode 14 feeling like a showdown between the Batman and the Joker long before either of them got their titles.

Let’s just pray we see a lot more of him in season 4.

1. Edward Nygma/The Riddler

Edward Nygma has probably seen more identity progression since the start of the series than any other character, good or bad. Starting out as the highly intelligent GCPD forensic scientist - so intelligent that it annoyed his co-workers - his villainy had an early onset but heightened gradually.

The reason Edward - please, call him The Riddler - played so faultlessly by Cory Michael Smith, is the perfect villain is because he was such a human character, showing care and compassion for his acquaintances Jim Gordon, etc; and a quite obsessive love/ lust for Kristen Kringle (and later her doppelganger, in a ridiculous plot that was performed so well it redeemed itself).

The Riddler didn’t need any resurrections, experiments or viruses to turn bad - just the betrayal of those he cared about causing him to snap.

Nygma's transition to The Riddler has seen him go from quiet nerd to charismatic, with the right amount of over the top theatrical pizzazz we want to see from a Batman baddie. He is no doubt the best incarnation of The Riddler, and arguably one of the best villains to be brought to life on screen.

---

Which Gotham villain is your favorite? Let us know in the comments!