Could you imagine a world in which Britney Spears—not Rachel McAdams—jumped into Ryan Gosling's arms for a passionate kiss in the pouring rain in the beloved romance The Notebook? Or a Matrix franchise in which Will Smith—not Keanu Reeves—slid on those cool '90s-style shades and leather duds to stop Agent Smith's bullets in midair? Or what about a scenario in which Nicolas Cage (!) beat out Viggo Mortensen for the role of sword-wielding hero Aragorn in Peter Jackson's The Lord of the Rings trilogy? Believe it or not, all of those castings nearly happened in Hollywood. And there are many more iconic movie roles that were almost played by someone else.
Because Hollywood is littered with crazy casting what-ifs, we set out to compile the most incredible and unbelievable ones right here for you to see. So read on, have your mind blown, and try to imagine a world in Al Pacino piloted the Millennium Falcon and Matt Damon played, well, basically every major role you can remember from the last 20 years. And for the most famous people who nearly walked away from the business entirely, check out These Huge Stars Almost Quit Hollywood.
Al Pacino almost played Han Solo in Star Wars.
A long time ago in a galaxy…well, not very far away at all, Al Pacino turned down the leading role in Star Wars. He told MTV, per The Independent, that he was confused by the script. Evidently, Harrison Ford was not.
And for stars who prefer the simple life, check out 24 Celebrities Who Still Live in Their Hometown.
Will Smith almost played Neo in The Matrix.
The Fresh Prince, not Keanu Reeves, was originally chosen to be The One, but turned the role down because he "just didn't see it." "I would have messed it up," Smith told Wired, looking back on the opportunity he passed up. "At that point I wasn't smart enough as an actor to let the movie be."
Gwyneth Paltrow almost played Rollergirl in Boogie Nights.
According to Gwyneth Paltrow, the role of Rollergirl (which ultimately went to Heather Graham) was too risqué to add to her resume. "I just thought, I can't be totally naked … on screen," Paltrow told Howard Stern, per Uproxx. "I'll kill my grandfather!"
And for redos that weren't big with audiences, check out 18 Movie Remakes That Totally Flopped.
Nicolas Cage almost played Aragorn in Lord of the Rings.
How different the series would have been if Nicolas Cage had come on board as Aragorn in Lord of the Rings—a role that was subsequently played with inimitable vigor by Viggo Mortensen. "There were different things going on in my life at the time that precluded me from being able to travel and be away from home for three years," he told Newsweek, of the films that famously were shot in New Zealand.
Jim Carrey almost played Buddy the Elf in Elf.
The modern holiday classic Elf, starring Will Ferrell, was released in 2003, but the script first emerged in Hollywood a decade prior. At that time, Jim Carrey was slated to star in it, but by the time the film actually went into production, he had moved on to other projects. Plus, let's not forget that, just a few years earlier, in 2000, Carrey filmed another Christmas comedy with How the Grinch Stole Christmas.
For onscreen pairs who didn't get along, check out 11 Beloved Movie Couples Who Clashed Behind the Scenes.
Charlize Theron almost played Roxie Hart in Chicago.
Many films go through shake-ups during the production process, but when Chicago lost its director, actor (and trained dancer!) Charlize Theron just didn't quite razzle dazzle the new one, Rob Marshall. "There was another director attached and he brought me on," Theron told Howard Stern. "And then that director got fired and this new director got brought on, and he didn't want to make the movie with me."
Ben Affleck almost played Josh in Clueless.
We almost never got to experience the perfect pairing that is Paul Rudd and Alicia Silverstone, as casting director Carrie Frazier originally thought Ben Affleck "would be fabulous for it," as she recalled to Elle.
And for performers who transformed themselves for their work, here are 14 Actors Who Looked Unrecognizable in Major Movies.
Denzel Washington almost played Detective David Mills in Se7en.
Denzel Washington told GQ that he regrets turning down a leading role in David Fincher's psychological thriller, Se7en.
Madonna almost played Cristal Connors in Showgirls.
Like many other "terrible" films, Showgirls gained a cult following years after its release and found the audience it was looking for. And it almost starred Madonna and not Elizabeth Berkley. The reason the former wasn't hired? She wanted a full overhaul of the script, per The Hollywood Reporter.
And for more entertainment trivia sent right to your inbox, sign up for our daily newsletter.
Matthew McConaughey almost played Jack Dawson in Titanic.
The Titanic that we know and love would have been entirely different had hunky heartthrob Matthew McConaughey starred alongside Kate Winslet. During a visit to The Late Show with Stephen Colbert, the actor revealed that when she auditioned for the part of Rose, she read her lines alongside McConaughey—not Leonardo DiCaprio. "[It] was completely fantastic," Winslet said. "It just wouldn't have been the whole 'Jack and Rose, Kate and Leo' thing."
Tom Hanks almost played Harry Burns in When Harry Met Sally.
On the classic rom-com's 25th anniversary, director Rob Reiner revealed that he considered many actors for the role of Harry Burns. "I talked to Albert Brooks about it," Reiner told The Daily Beast. "I talked to Tom Hanks about it. I talked to Richard Dreyfuss and Michael Keaton about it." Ultimately, Reiner decided to hire Billy Crystal as he was the director's best friend, plus it didn't hurt that "Meg [Ryan] and Billy hit it off right away," as Reiner recounted.
Liam Neeson almost played President Lincoln in Lincoln.
Daniel Day-Lewis has Liam Neeson in part to thank for his Oscar-winning role in Lincoln. Evidently, Neeson had originally signed on to play Lincoln when director Steven Spielberg first approached him about it 10 years prior, but once the time came to shoot the movie, his passion for the project had vanished.
"We started reading [the script], and there was an intro, and then I see 'Lincoln:' where I have to start speaking, and I just—a thunderbolt moment," Neeson told GQ back in 2014. "I thought, 'I'm not supposed to be here. This is gone. I've passed my sell-by date. I don't want to play this Lincoln. I can't be him.'"
Reese Witherspoon almost played Cher Horowitz in Clueless.
Reese Witherspoon as Cher Horowitz? As if! But it's true—the Sweet Home Alabama actor was considered for the role once upon a time, according to director Amy Heckerling.
"I met with Reese Witherspoon, but she never read for it," Heckerling told Yahoo Entertainment in 2020. "And by that time I was, like, already settled on Alicia [Silverstone], who I love. Who, you know, was in my head while I was writing."
Matt Damon almost played Jake Sully in Avatar.
In 2009, James Cameron's Avatar was released, and went on to become the highest-grossing film of all time. Sam Worthington led the film, but he would have never starred in the movie had Matt Damon accepted the offer first.
"Having to say no to Avatar was tough because I particularly wanted to work with James Cameron, and still do, because he's fantastic," Damon told Playboy, per MTV. "When he said, 'Look, I'm offering it to you, but if you say no, the movie doesn't need you,' I remember thinking, 'Oh God, not only do I have to say no because of scheduling, but he's going to make a star out of some guy who's going to start taking jobs from me later.'"
Katie Holmes almost played Annette Hargrove in Cruel Intentions.
"We got into disagreements over who was going to play Annette [Hargrove], Cruel Intentions screenwriter and director Roger Kumble told Cosmopolitan in 2014. "The studio wanted Katie Holmes, who was just starting to do Dawson's Creek… but this was early Katie, and I thought we needed someone with a little more strength of character."
Kumble eventually asked leading man Ryan Phillippe about his then-girlfriend Reese Witherspoon, and whether she'd be interested in the role. The two took Witherspoon out for dinner, and Kumble ended up begging her to play the part. Luckily for him (and all of us), Witherspoon agreed, and the rest is history.
Britney Spears almost played Allie Hamilton in The Notebook.
"I did [a screen-test with Britney Spears], yeah," Ryan Gosling said in an interview with Entertainment Tonight. It was a reunion, since Gosling and Spears were both on Disney's Mickey Mouse Club at the same time. "I hadn't seen her really since she was about 12… so she's so grown up, but she was really good, actually," the actor added.
But it's not just cinematic history that would've been changed had Spears played the role of Allie Hamilton in The Notebook. After the film's production, co-stars Ryan Gosling and Rachel McAdams went on to date for almost four years.
Sir Ian McKellen almost played Albus Dumbledore in Harry Potter.
When the actor who originally played Hogwarts headmaster Albus Dumbledore, Richard Harris, passed away after Harry Potter and the Chamber of Secrets, the second entry in the franchise, Harry Potter producers had actor Sir Ian McKellen in mind as his replacement. However, McKellen turned the role down, as Harris had once remarked that he was "technically brilliant, but passionless."
"I couldn't take over the part from an actor who I'd known didn't approve of me," the Lord of the Rings actor told the BBC's HARDTalk in 2017.
Jennifer Hudson almost played the lead role in Precious.
In her memoir, I Got This: How I Changed My Ways and Lost What Weighed Me Down, actor and singer Jennifer Hudson revealed that she turned down the Oscar-nominated starring role in Precious as she didn't want to gain the weight necessary to play it.
"I had [gained the weight] with Effie [in Dreamgirls]… and as much as I was moved by this film, I wanted to try a role that had nothing whatsoever to do with my weight," she wrote, per The Hollywood Reporter. Instead, Hudson accepted the role of Carrie Bradshaw's assistant in the first Sex and the City movie, while Gabourey Sidibe took on the title role in Precious.
Matt Damon almost played Harvey Dent in The Dark Knight.
Matt Damon just can't catch a break. Yet again, the star missed out on a great opportunity when he chose not to play Harvey Dent in The Dark Knight—a role that ended up being played by Aaron Eckhart—due to scheduling issues. Oh well: You either die a hero or live long enough to see yourself turn down incredible movie roles.
Julia Roberts almost played Annie Reed in Sleepless in Seattle.
In a 2014 interview with InStyle, Julia Roberts revealed that she turned down the leading role in the Nora Ephron rom-com, saying, "I'd been offered Sleepless in Seattle, but couldn't do it." However, while some actors might be bitter about giving up such an iconic role, Roberts has no regrets about her decision.
"[Meg] Ryan and Tom Hanks are just such a jewel of a fit in that," Roberts said. "I guess what they did for that moment in time is sort of what Richard [Gere] and I were doing across town [in Pretty Woman], you know?"
Sean Connery almost played Gandalf in Lord of the Rings.
Gandalf the Grey, you say? There's no way! But it's true: Sean Connery came this close to playing McKellen's role in the Lord of the Rings franchise, one persistent rumor says.
Al Pacino almost played John McClane in Die Hard.
Turns out that there are quite a few offers that Al Pacino can refuse. Apparently the Godfather star also passed on the lead in 1988's Die Hard, during a time when he was being offered roles left and right. "I gave that boy a career," Pacino joked about the success that Bruce Willis found after taking on the role that Pacino rejected.
Tom Cruise almost played Ren McCormack in Footloose.
The producers of Footloose had Tom Cruise in mind to play the film's rambunctious main man, but the star was already busy filming All The Right Moves, per IFC. Luckily, we still got a taste of Cruise's dancing chops when he busted out his best moves in Risky Business (and of course, behind the bar in Cocktail), and Kevin Bacon was more than up to to the task of helping a small town fall in love with shaking it all over again.
Johnny Depp almost played Patrick Bateman in American Psycho.
According to Stuart Gordon, who was attached to the project before director Mary Harron, the option for the book American Psycho passed through several hands—directors and actors alike—before finally settling on a home. When the project was Gordon's, he had Johnny Depp on board to star, but author Bret Easton Ellis soon took to the tabloids to trash Depp, calling him "a lightweight actor who was too old to play the part," as the director recalls.
As the film continued to switch hands, everyone from Edward Norton to Leonardo DiCaprio was considered, but ultimately Christian Bale was the one who became Patrick Bateman under Harron's director.
Matt Damon almost played Dan White in Milk.
Apparently Matt Damon's missed out on quite a few roles of a lifetime. The actor was on board to play city supervisor Dan White in the Oscar-winning Milk, but had to turn it down when filming began to conflict with another project he was in, Green Zone.
"Steven Soderbergh's mantra is, 'The movie gets the right person; the right actor gets the part,' but I was like, [heck], no. That was my part!,'" Damon joked in the same Playboy feature. However, the actor has no hard feelings, as after seeing Josh Brolin play the role he was once slated for, he "knew Soderbergh was right."
Jessica Simpson almost played Jamie Sullivan in A Walk to Remember.
It is pretty much impossible to imagine Nicholas Sparks' A Walk to Remember without Mandy Moore in the leading role. And we're not the only ones who think so. In an interview with Entertainment Weekly, Moore's co-star Shane West said, "There was someone else… whose name was batted around for Mandy's role," referring to Jessica Simpson. "I remember I wasn't keen on that idea and thankfully it didn't happen. The person just didn't seem right."
Tom Selleck almost played Indiana Jones in the Indiana Jones franchise.
A few years after heading to outer space to star in Star Wars, Harrison Ford took on the completely different—and yet equally iconic—role of Indiana Jones. But before he could raid tombs, another actor had to first drop out of the role—that actor being none other than Tom Selleck. In an interview with David Letterman, the actor said that he had to turn the role down due to contractual obligations with Magnum P.I.
Sarah Polley almost played Penny Lane in Almost Famous.
In the podcast Origins: Almost Famous Turns Twenty (per The Loop), writer/director Cameron Crowe recounted the challenges of making the classic rock flick, including losing Sarah Polley, who was set to play Penny Lane. Now a beloved indie director as well, Polley was talked out of the role by friends who said that making a studio movie would hurt her career. That role would eventually make Kate Hudson a star.
Mel Gibson almost played Maximus in Gladiator.
Between Braveheart, The Patriot, and Lethal Weapon, Mel Gibson has more than proven his ability to take on roles that involve being angry in a historic setting. And yet, the actor turned down the opportunity to star in Gladiator, as he felt he was too old for the role at that point. It would be filled by Russell Crowe.
Hugh Jackman almost played James Bond.
Hugh Jackman almost joined the distinguished list of actors to play 007, but ultimately let Daniel Craig portray the classic character after finding out that he'd get no say in the script. In an interview with Variety, the Wolverine said: "I just felt at the time that the scripts [for James Bond] had become so unbelievable and crazy, and I felt like they needed to become grittier and real." Because a man with retractable claws who can heal instantly is believable? Okay, Hugh.
Emma Watson almost played Mia in La La Land.
"The casting of this movie during the six years it took to get made went through lots of permutations, and it's true there was a moment where Emma Watson and Miles Teller were doing it," La La Land director Damien Chazelle told Uproxx. Emma Stone took the part of Mia and ended up winning an Oscar for it.
Christina Applegate almost played Elle Woods in Legally Blonde.
Nobody wants to be typecast as the dumb blonde in Hollywood. Or, at least Christina Applegate doesn't, which is why she turned down the role of Elle Woods in Legally Blonde in the early 2000s. "What a stupid move that was, right?," Applegate joked with ETOnline. Nevertheless, the actress is happy that Reese Witherspoon ended up taking on the role, and says that she "did a much better job than I ever could, and so that's her life."
Anne Hathaway almost played Tiffany in Silver Linings Playbook.
Anne Hathaway was the first actor chosen to play the female lead in Silver Linings Playbook, but her and the film's director, David O. Russell, had too many creative differences to make it work. The silver lining: Jennifer Lawrence joined the cast, and went on to win an Oscar. And don't be sad for Hathaway: She also won an Oscar that same year for her heartbreaking portrayal of Fantine in Les Miserables. Everybody wins—literally!
John Travolta almost played Forrest Gump.
John Travolta passed up playing the role of Forrest Gump. Really. Fun fact: at the 1995 Oscars, Travolta went head-to-head for Best Actor against Gump's Tom Hanks for his role in Pulp Fiction and lost.
Kate Winslet almost played Viola in Shakespeare in Love.
After shooting into the spotlight as Rose in Titanic, Kate Winslet decided to turn to more independent movies and passed up a part in Shakespeare in Love. Instead, Gwyneth Paltrow got the role—and it earned her a Best Actress Oscar.
Sandra Bullock almost played Maggie Fitzgerald in Million Dollar Baby.
Around the time of Million Dollar Baby's release, rumors were circulating that Sandra Bullock "snubbed" the film and its director and star, Clint Eastwood. However, Bullock adamantly denies such rumors, explaining that she had to drop out of the movie because of scheduling conflicts.
"We had Million Dollar Baby with someone else for a while, trying to get it made," Bullock reportedly said. "I couldn't get it made. We tried and tried and tried. I then started doing Miss Congeniality 2 and they got Hilary Swank and they got Clint."
Robert Redford almost played Benjamin Braddock in The Graduate.
Robert Redford may be the only actor in Hollywood who's ever missed an opportunity on account of being too handsome. That's right: Though the star was eager to play the role of Benjamin Braddock in The Graduate, director (and friend) Mike Nichols thought he wasn't a fit for an awkward guy who struggles with the ladies.
"I said [to Robert], 'You can't play it. You can never play a loser,'" Nichols told Vanity Fair. "And Redford said, 'What do you mean? Of course I can play a loser.' And I said, 'OK, have you ever struck out with a girl?' and he said, 'What do you mean?' And he wasn't joking."
Javier Bardem almost played Danny Witwer in Minority Report.
You'd never know it hearing Javier Bardem speak English today, but in the early '00s, he didn't feel confident enough to star in English-language films. "At that time, it was difficult for me to jump into a foreign-language performance," Bardem said during a master class at the Toronto Film Festival, per The Hollywood Reporter. He turned down a role in Steven Spielberg's Minority Report—despite the fact that the No Country for Old Men star said he would have loved a chance to work with the director.
Julia Roberts almost played Leigh Anne Tuohy in The Blind Side.
In an alternate universe, Julia Roberts played Leigh Anne Tuohy, the adoptive mother of NFL star Michael Oher, in The Blind Side. The real Tuohy told Deseret News that the part was originally written for Roberts and confirmed that it was a scheduling issue that kept her from taking the part for which Sandra Bullock would eventually win an Oscar.
Henry Winkler almost played Danny Zuko in Grease.
In 2017, Henry Winkler revealed to AARP The Magazine (via Closer Weekly) that he turned down the role of T-Bird leader Danny Zuko in Grease because he "didn't want to be typecast." Seeing as the role that made him famous was that of the Fonz in Happy Days, it's easy to understand his concern.
Michelle Pfeiffer almost played Clarice Starling in The Silence of the Lambs.
Silence of the Lambs director Jonathan Demme's first choice to play Clarice Starling was none other than Michelle Pfeiffer. The problem, he said at a Q&A (as reported by NME), was that the Scarface actor was "concerned about the darkness of the piece." Begrudgingly, Demme went with Jodie Foster for the role, and she received her second Oscar for it.
And Matt Damon almost played Ennis Del Mar in Brokeback Mountain.
Yes, it's Matt Damon again. He was in talks to star in Brokeback Mountain when Gus Van Sant was going to direct. "I just did a gay movie and a cowboy movie. I can't do a gay cowboy movie now," he told Playboy he told the director, referring to his roles in The Talented Mr. Ripley and All the Pretty Horses, respectively.
The late Heath Ledger would eventually take on the role of Ennis, under the direction of Ang Lee.
Jack Nicholson almost played Michael Corleone in The Godfather.
Jack Nicholson's hesitance to take a role in The Godfather was quite simple: He thought it should go to someone Italian. At least that's what he said in a 2004 interview. Al Pacino indeed fit that bill.
Will Smith almost played Django in Django Unchained.
Quentin Tarantino wrote the lead role of Django Unchained with Will Smith in mind, but a commitment to Men in Black III kept the star from ever joining the cast. And apparently that's not the only reason: In a 2013 interview with Entertainment Weekly, Smith said that there were some changes he wanted made to the script.
"Django wasn't the lead, so it was like, I need to be the lead," he said."The other character was the lead! I was like, 'No Quentin, please, I need to kill the bad guy!"
However, in 2015, he offered a different reason to The Hollywood Reporter: "I wanted to make that movie so badly, but I felt the only way was, it had to be a love story, not a vengeance story," Smith said. Not much luck of that with Tarantino in the director's chair. Jamie Foxx, meanwhile, wasn't fazed by the violent tale.
Angelina Jolie almost played Alex Munday in Charlie's Angels.
For the Charlie's Angels remake, pretty much everyone wanted Angelina Jolie to join the cast as Charlie's third gal. Jolie told Film Ink in 1999, "The reasons to do it would be to play a tough girl, and I've already done that." In the end, Lucy Liu took on the part.
Tom Hiddleston almost played Thor.
Before Tom Hiddleston was cast to play Loki, the on-again, off-again villain of the Marvel Cinematic Universe, he auditioned to be the God of Thunder. You can even watch the footage of his audition, though the part was destined for Chris Hemsworth.
Marilyn Monroe almost played Holly Golightly in Breakfast at Tiffany's.
Think back to the late '50s, and you'll be hard-pressed to recall a monumental movie without Audrey Hepburn or Marilyn Monroe in it. And as both A-listers were hot commodities, it figures that they were often courted for the same roles, like the role of Holly Golightly in Breakfast at Tiffany's. Truman Capote, who wrote the novella the movie was loosely based on, wanted Monroe to star, but she turned the part down as she didn't want to be associated with such a scandalous role.
Eric Stoltz almost played Marty McFly in Back to the Future.
For a short period of time Eric Stoltz was Marty McFly. But after watching Stoltz embody—or rather, try to embody—the role for a few weeks, director Robert Zemeckis had had enough. "It turned out that his instincts and the type of the comedy [of] the film we were doing weren't really gelling," the director said in the documentary Back in Time, per Entertainment Weekly. Zemeckis had wanted Michael J. Fox all along, and after a rough start, he finally got his Marty McFly.
Harrison Ford almost played Alan Grant in Jurassic Park.
At an anniversary screening of Raiders of the Lost Ark in 2011 (per Slash Film), Steven Spielberg reminded Harrison Ford that he offered him the role of Dr. Alan Grant in the first Jurassic Park. No revelations on why Ford turned down the part that eventually went to Sam Neill, however.
Robin Williams almost played Hagrid in Harry Potter.
Robin Williams wanted part of the first Harry Potter movie so badly he reached out to J.K. Rowling about playing the role of Hagrid, according to a HuffPost interview with casting director Janet Hirshenson. But Rowling was adamant that all the actors be Brits. It was Robbie Coltrane who would memorably play the half-giant.