For every actor who lands a role in a TV show or movie, there’s usually an actor (or several) who didn’t get the part. Even Hollywood’s biggest stars have to go through an audition process at some point, and that means dealing with rejection – for example, Blake Lively lost out to Amanda Seyfried on playing Karen Smith on “Mean Girls,” while “Better Caul Saul” actor Bob Odenkirk was incredibly close to playing Steve Carrell’s iconic Michael Scott on “The Office.” And apparently, Jennifer Lawrence once auditioned for “Twilight” – a role that would have kept her from eventually becoming Katniss Everdeen.
For every actor who almost missed out on their iconic roles, there are the actors who were almost cast instead. Some stars came down to the final few only to be beat out by another actor. Others were cast only to be fired and recast. There are even actors who were offered major roles and turned them down. We’ve rounded up actors who missed out on iconic parts, and you’ll likely be surprised by a few of these near-misses.
Jennifer Lawrence as Bella in "Twilight"
During an appearance on Bill Simmons’s podcast “The Rewatchables” in June 2023, Lawrence confirmed that she auditioned for “Twilight.” She said that she was turned down “immediately,” laughing, “I didn’t even get a callback. But my life would’ve been totally different. I got ‘Hunger Games’ I think, like, a year later.” The first film in the Twilight franchise was released in 2008, with Kristen Stewart in the lead role of Bella. Lawrence began starring as Katniss Everdeen in the Hunger Games movies in 2012.
“I almost didn’t do ‘Hunger Games’ because ‘Twilight’ had come out and that fandom had happened,” Lawrence also said on the podcast. She added, “I assumed it was going to be the ‘Twilight’ level of fame and that was never something I had in mind. I never wanted to be the most famous person on the planet. That’s a very different life than I pictured for me.”
Blake Lively as Karen in "Mean Girls"
The original cast of “Mean Girls” is pretty iconic, but it turns out that the Plastics almost had a different star in their midst. In a Feb. 22 interview with Vanity Fair, Amanda Seyfried – who played Karen Smith in the classic movie – revealed that the part almost went to none other than Blake Lively.
“I’d flown out to LA for the first time with my mother. It was very exciting,” Seyfried said of her audition. Initially, Seyfried had been aiming for the part of Regina George. “I met Lacey Chabert for the first time, and Lindsay Lohan was in the room, and Blake Lively was playing Karen, and then I was Regina,” she said. Eventually, of course, Seyfried was picked for Karen.
Although Lively didn’t get the role, she went on to score a main role as a queen bee in “Gossip Girl,” which premiered in 2007.
Zoey Deutch as Katniss Everdeen in "The Hunger Games"
Before the role of Katniss Everdeen in “The Hunger Games” went to Jennifer Lawrence, Zoey Deutch auditioned for the part. “I screen tested for Katniss but knew I didn’t get it because in the screen test, he was like, ‘Why don’t you read this other part?'” Deutch recalled on the “Lights, Camera, Barstool” podcast in August 2022, per People. “Literally. But, yeah, that one was a little painful.”
Tamzin Merchant as Daenerys Targaryen on "Game of Thrones"
Though Emilia Clarke eventually became the Mother of Dragons on “Game of Thrones,” “Carnival Row” actress Tamzin Merchant was originally cast as Daenerys Targaryen. She even played Daenerys on the first pilot made for the show before showrunners D.B. Weiss and David Benioff ended up reconsidering. It’s unclear why exactly Merchant was replaced, but as casting director Nina Gold cryptically told Vanity Fair in July 2017, it was a difficult decision. “It’s tough, but you’ve got to get it right, ultimately,” she said.
John Boyega as Gary "Eggsy" Unwin in "Kingsman: The Secret Service"
John Boyega (aka Finn from the Star Wars sequel trilogy) was apparently in the running to play Eggsy in “Kingsman: The Secret Service” before Taron Egerton ultimately got the part. During a March 2016 interview with Empire Online, director Matthew Vaughn recalled what a “tough call” it was to choose between the actors. “Boyega is a fabulous actor, but there’s something about Taron,” Vaughn said. “You have to listen to your instincts about who that role is. John’s probably thinking, ‘Thank f*ck he didn’t cast me!’ because he might never have been in ‘Star Wars’!”
Leonardo DiCaprio as Patrick Bateman in "American Psycho"
Christian Bale killed it (literally) as Patrick Bateman in “American Psycho,” but it could have been Leonardo DiCaprio playing the Wall Street serial killer instead. According to a film published by Vice News, DiCaprio was reportedly convinced not to take the role by feminist icon Gloria Steinem. As “American Psycho” cowriter Guinevere Turner explained in the Vice film, “I believe [Steinem] said, ‘Please don’t do this movie. Coming off of ‘Titanic,’ there is an entire planet full of 13-year-old girls waiting to see what you do next, and this is going to be a movie that has horrible violence toward women.’ Soon after that, Leo dropped out, so who knows what really happened?”
Bob Odenkirk as Michael Scott on "The Office"
Steve Carell eventually became the Michael Scott we all know and (mostly) love, but the regional manager of the Dunder Mifflin Scranton branch was almost played by “Better Call Saul” actor Bob Odenkirk instead. Though Carell was a top contender, he had signed on to appear on the NBC sitcom “Come to Papa” around the same time “The Office” was finding its cast, and Odenkirk was cast instead. However, once “Come to Papa” was canceled after four episodes, Carell was back in the running.
“Bob has an edge to him,” casting director Allison Jones later told Andy Greene, author of “The Office: The Untold Story of the Greatest Sitcom of the 2000s.” “His take on Michael was just as funny as Steve’s, but it was darker . . . The worst thing I ever had to do is tell Bob Odenkirk’s agent that he didn’t get ‘The Office.'”
Cedric the Entertainer as Ralph Abernathy in "Selma"
When the cast for “Selma” was first announced in March 2010, multiple sources confirmed that actor and comedian Cedric the Entertainer would play civil rights activist and Baptist minister Ralph Abernathy. However, Colman Domingo ended up appearing in “Selma” instead. The decision was made after Ava DuVernay took the reins from Lee Daniels in 2013, as she had a different vision for the film. As DuVernay told The Wrap in December 2014, “When I started, it was a different story, different script, and a different idea on how to approach it,” which is why she ended up recasting the comedian.
Brook Kerr as Tara Thornton on "True Blood"
Sookie Stackhouse’s best friend Tara Thornton on “True Blood” was almost played by an actress other than Rutina Wesley. Initially, soap star Brook Kerr was cast in the part, and she even filmed the original unaired pilot before being recast. Fans still haven’t learned why Kerr was recast, but thanks to footage leaked online from the pilot episode, you can catch a bit of her performance.
George Clooney as Noah Calhoun in "The Notebook"
During a virtual screen talk at the 64th BFI London Film Festival in October 2020, George Clooney revealed that he was in talks to play Noah Calhoun in “The Notebook” alongside Paul Newman, who was set to play the older version of Noah. “We were going to do “The Notebook” together,” Clooney said of Newman. “Basically, I was going to play him as a young man, and it was funny. We met and said, ‘This is it. It’s going to be great.'”
However, Clooney apparently changed his mind about the project after watching Newman’s films. “He’s one of the handsomest guys you’ve ever seen,” he continued. “We met up and I said, ‘I can’t play you. I don’t look anything like you. This is insane.’ We just wanted to do it because we wanted to work together, [but] it ended up being not the right thing for us to do.” Ryan Gosling went on to play Noah, with James Garner playing the older version.
Eric Stoltz as Marty McFly in "Back to the Future"
Originally, Eric Stoltz was set to play Marty McFly in the Back to the Future franchise, and the actor even spent five weeks on set filming. However, according to Vulture, Steven Spielberg reportedly wasn’t happy with Stoltz’s performance, and they ended up recasting and reshooting the movie with Spielberg’s first choice, Michael J. Fox (who was initially unavailable due to his shooting schedule with “Family Ties”). During an April 2007 interview with Moviehole, Stolz said he had no hard feelings about being let go. “In retrospect, I think just getting through that difficult period helped me realize how freeing it really was,” he said.
Will Smith as Neo in "The Matrix"
Thanks to “The Matrix,” Keanu Reeves became a movie legend, but he almost missed his chance to play Neo. Will Smith was offered the part before Reeves and ended up accepting the lead role in “Wild Wild West” instead. Luckily, it doesn’t seem like Smith is bitter. In a video posted on his YouTube channel in February 2019, Smith explained why “Keanu was perfect” for the role and a much better fit than he would have been. “I probably would have messed ‘The Matrix’ up. I would have ruined it, so I did y’all a favor,” he joked.
Jada Pinkett Smith as Nina Mosley in "Love Jones"
Will Smith wasn’t the only member of the Smith family who lost out on a major role. Apparently, the part of Nina Mosley in “Love Jones” was originally written with Jada Pinkett Smith in mind. As “Love Jones” director Theodore Witcher told the Los Angeles Times during a March 2017 interview, “Believe it or not, I had Jada Pinkett in mind. I had seen her in ‘A Different World’ and thought she had a very different sensibility from other Black actresses of her generation. I tried to get her, but she passed.” Instead, Witcher ended up casting Nina Mosley.
Julianne Moore as Lee Israel in "Can You Ever Forgive Me?"
“Can You Ever Forgive Me?” gave Melissa McCarthy her first big dramatic role, but Julianne Moore was originally tapped to star in the film. During a March 2019 appearance on “Watch What Happens Live With Andy Cohen,” Moore confirmed the rumors that she was supposed to play Lee Israel, though according to her, she was let go from the project. “I didn’t leave that movie, I was fired. Nicole fired me,” Moore told Entertainment Weekly, referring to the movie’s screenwriter and original director, Nicole Holofcener. “I think she didn’t like what I was doing. We’d been rehearsing and doing preproduction stuff, and I think her idea of where the character was was different than where my idea of the character was, so she fired me.”
Wesley Snipes as Lucious Lyons on "Empire"
It’s hard to imagine anyone beside Terrence Howard starring alongside Taraji P. Henson on “Empire,” but Wesley Snipes nearly landed the role of Dwight Walker (aka Lucious Lyons) instead. Per E!, during the show’s panel at the 2015 Winter TCA Press Tour, showrunner Lee Daniels revealed that he’d originally approached Snipes about the role, but Henson all but demanded that her “Hustle & Flow” costar Howard be cast instead. As Henson recounted during the panel, “I was like, ‘Lee, this is an incredible project. I think Cookie is amazing. I would love to play her. If you can get Terrence, I’m all about it. If not, good luck with the project!'”
Mindy Kaling as Lillian Donovan in "Bridesmaids"
Though Maya Rudolph ended up playing Lillian Donovan in “Bridesmaids,” Kaling revealed that she was also up for the part of Lillian during a September 2014 appearance on “Watch What Happens Live With Andy Cohen.” “No one ever calls me in to audition for things because I’m so specific,” Kaling said, which is why she was thrilled to read for the role. “I practiced it so much and was so into it and I loved that whole cast,” she added. “That was one that was a heartbreaker.”
Natalie Portman as Juliet Capulet in "Romeo + Juliet"
Natalie Portman was all set to star as Juliet Capulet in “Romeo + Juliet” – that is, until filming began and director Baz Luhrmann realized how young Portman looked compared to Leonardo DiCaprio, who played Romeo. According to Portman, the age difference was just too noticeable, so she was replaced by Claire Danes, who’s a few years older. As the actress explained during a 1996 interview, ” . . . it wasn’t appropriate in the eyes of the film company or the director Baz. And it was kind of a mutual decision that it just wasn’t going to be right at the time and I think the film came out really, really beautifully and Claire Danes did a really, really beautiful job.”
Tupac Shakur as Malik Williams in "Higher Learning"
“Higher Learning”‘s Malik Williams may have been played by Omar Epps, but according to writer and director John Singleton, he wrote the role of Malik with the late Tupac Shakur in mind. Around the same time, Shakur was charged with sexual assault in New York and with the shooting of two off-duty cops in Atlanta. The rapper and actor was then fatally shot in 1994, which was the year before “Higher Learning” was released. “The original cast to ‘Higher Learning’ was supposed to be Tupac, Leonardo DiCaprio, Gwyneth Paltrow, and Juliette Lewis,” Singleton explained to Vibe in November 2011. “‘Pac ended up getting in trouble and then all that stuff happened in New York. It was logistically impossible.”
Matt LeBlanc as Phil Dunphy on "Modern Family"
Ty Burrell was perfect for the role of Phil Dunphy on “Modern Family,” but “Friends” alum Matt LeBlanc was also given the opportunity to take on the part. Though LeBlanc thought the script was great, he also thought the role wasn’t a good fit for him. “I remember reading it thinking, this is a really good script, [but] I’m not the guy for this,” LeBlanc told USA Today during an August 2017 interview. “I’d be doing the project an injustice to take this. I know what I can do, I know what I can’t do. Plus, I’m having too much fun laying on the couch.”
Lisa Kudrow as Roz Doyle on "Frasier"
Another “Friends” alum similarly missed out on an iconic TV role. Lisa Kudrow was originally cast as Roz Doyle on “Frasier,” but during rehearsals for the pilot episode, producers felt Kudrow wasn’t playing Roz the way they’d imagined. As “Frasier” cowriter Peter Casey explained in an essay for Ken Levine’s blog in December 2006, “By the third day of rehearsals it was becoming apparent to Jim Burrows, Kelsey [Grammer], and the three of us that things weren’t going so well with Lisa as Roz. Although she remained funny in her quirky way, we found that each day we were re-writing the character less strong because Lisa just didn’t play forceful.” Peri Gilpin replaced Kudrow, and Kudrow was cast on “Friends” soon after.
Rob Lowe as Derek Shepherd on "Grey's Anatomy"
Rather than Patrick Dempsey, it could have been Rob Lowe who took on the role of McDreamy. In his 2014 memoir, “Love Life,” Lowe confessed that he’d been offered the role of Derek Shepherd on “Grey’s Anatomy,” but he turned it down to star in the short-lived CBS series “Dr. Vegas” instead. “Year after year after year, all of ABC’s new dramas flopped,” Lowe wrote in the memoir, according to E!. “CBS was on a hot streak that continues to this day. Although ‘Grey’s’ was a much better script, I chose ‘Dr. Vegas.’ The odds were just too stacked.”
Fantasia Barrino as Effie White in "Dreamgirls"
Before Jennifer Hudson came into the picture, Jamie Foxx (who played record boss Curtis Taylor in “Dreamgirls”) originally wanted Hudson’s fellow “American Idol” alum Fantasia Barrino to play Effie White. Apparently, director Bill Condon didn’t feel the same way. “Everyone wanted me for that role except the director. But it wasn’t for me,” Barrino told Vibe Vixen” in January 2007. “I tried really hard. But I can’t even be mad. That role was for Jennifer Hudson. I feel like I was meant to win ‘American Idol.’ And I feel like J was meant to play the Effie role.”
Connie Britton as Olivia Pope on "Scandal"
When the role of “Scandal”‘s DC fixer Olivia Pope was written, producers initially had “Nashville”‘s Connie Britton in mind. However, show creator Shonda Rhimes stepped in and insisted that the role of Olivia – who was inspired by real-life lawyer Judy Smith – belonged to a Black actress. “When the show got picked up [to pilot], I got a phone call from somebody who said, ‘This would be the perfect show for Connie Britton.’ I said, ‘It would be, except Olivia Pope is Black,'” Rhimes told The Hollywood Reporter in April 2017. The role ended up going to Kerry Washington instead.
Lana Condor as Rose Tico in "Star Wars: The Last Jedi"
Lana Condor was born to play Lara Jean Covey in “To All the Boys I’ve Loved Before,” but apparently, the role of Rose Tico in “Star Wars: The Last Jedi” (and later, “Star Wars: The Rise of Skywalker”) wasn’t meant for her. As she told StyleCaster during a February 2020 interview, she was so close to landing the part that she had a chemistry read with John Boyega. Kelly Marie Tran was cast instead, but as Condor pointed out to StyleCaster, “Had I done ‘Star Wars,’ I wouldn’t have been able to do ‘To All the Boys,’ so that’s an example of one door closes and another opens.”
John Posey as Danny Tanner on "Full House"
We can’t imagine a world where Bob Saget didn’t play Danny Tanner, but the original unaired “Full House” pilot was actually filmed with a different actor playing the family patriarch. Apparently, producers wanted Saget from the start, but he was filming “The Morning Program” at the time, so comedian John Posey was cast instead. However, after the pilot was filmed, “The Morning Program” was canceled, Saget became free, and Posey was let go. As Posey explained during an April 2014 interview with Yahoo! TV, “Nobody said there were problems. It seemed like everything was fine. We shot it. I learned as much as I could in a short period of time. And next thing I know, ‘Hey, you’re no longer employed.'”