Hollywood has a long history of casting adults to play teenagers on screen. Sometimes the age gap between actor and character is just a few years, but other times it is shockingly wide.
These casting choices often go unnoticed while watching, but once you know the real ages, it is hard to unsee. From classic films to modern blockbusters, here are some of the most surprising examples.
1. Grease (1978) – Stockard Channing as Rizzo

Most people remember Stockard Channing as the sharp-tongued Rizzo in Grease, but here is the jaw-dropping part: she was 33 years old when she played a high school student. That is not a small age gap.
Olivia Newton-John, who played Sandy, was nearly 30, and John Travolta was in his mid-20s.
The whole cast was older than their characters, yet the film became one of the most beloved teen movies ever made. Go figure!
2. Mean Girls (2004) – Rachel McAdams as Regina George

Rachel McAdams played Regina George with such convincing teenage cruelty that nobody questioned her age during the film. In reality, she was 25 or 26 when she portrayed the 16-year-old queen bee of North Shore High School.
Her performance was so spot-on that Mean Girls became a defining teen movie of the 2000s. Looking back, it is wild to realize the most iconic high school villain was played by someone closer to 30 than to 16.
3. Clueless (1995) – Stacey Dash as Dionne

Clueless is one of the most stylish teen comedies of the 1990s, and Stacey Dash nailed the role of fashionable high schooler Dionne. What most fans did not know was that Dash was 27 or 28 when filming began.
She kept the role going in the TV spin-off series until she was 32 years old. Playing a teenager for nearly five years straight might just be a record in Hollywood history.
4. Ferris Bueller’s Day Off (1986) – Alan Ruck as Cameron Frye

Alan Ruck played Cameron Frye, Ferris Bueller’s anxious best friend, with such awkward teenage energy that audiences completely believed him. Behind the scenes, Ruck was 29 during filming and turned 30 shortly after the movie released.
That means he was playing a high school senior while nearly a decade past his own senior year. Jennifer Grey, who played Ferris’s sister, was also 26, making the entire cast considerably older than their characters.
5. Spider-Man (2002) – Tobey Maguire as Peter Parker

Tobey Maguire brought Peter Parker to life in Sam Raimi’s Spider-Man, swinging through New York City as a nerdy 17-year-old high schooler. The only catch?
Maguire was 26 or 27 years old at the time of filming.
He pulled it off well enough that the film became a massive hit and launched a beloved franchise. Still, watching him attend high school knowing his real age adds a funny new layer to those early scenes.
6. The Amazing Spider-Man (2012) – Andrew Garfield as Peter Parker

When Sony rebooted Spider-Man with Andrew Garfield, they once again cast someone in their late 20s to play the 17-year-old Peter Parker. Garfield was 27 during production, nearly a full decade older than his character.
What makes it even more noticeable is that his co-star Emma Stone, playing his high school girlfriend Gwen Stacy, was also 23 at the time. Both were very convincing, but the age math is hard to ignore once you know.
7. Catch Me If You Can (2002) – Leonardo DiCaprio as Young Frank Abagnale

Based on a true story, Catch Me If You Can follows Frank Abagnale Jr. from the age of about 16 as he cons his way through life as a fake pilot, doctor, and lawyer. Leonardo DiCaprio played the young Frank with charm and ease, but he was 26 during filming.
The real Frank Abagnale started his schemes as a teenager, making DiCaprio a full decade older than the character he was portraying in those early scenes.
8. 10 Things I Hate About You (1999) – Gabrielle Union as Chastity

Gabrielle Union played the popular and slightly catty Chastity in this beloved Shakespeare-inspired teen rom-com. She brought a fun energy to the role, but she was 26 or 27 years old when the cameras rolled.
The film starred a mostly young cast including Heath Ledger and Julia Stiles, both of whom were genuinely in their late teens. Union held her own beautifully, but she was practically a decade older than some of her co-stars.
9. Harry Potter and the Chamber of Secrets (2002) – Shirley Henderson as Moaning Myrtle

Moaning Myrtle is the ghost of a 14-year-old Hogwarts student who haunts a school bathroom, crying about her tragic life. The actress behind the role, Shirley Henderson, was 36 years old when she filmed the part.
That is a 22-year age gap between actress and character, making this one of the most extreme examples on this list. Henderson reprised the role in later films too, playing the teenage ghost well into her late 30s.
10. Rebel Without a Cause (1955) – James Dean as Jim Stark

James Dean became the face of teenage rebellion with his role as Jim Stark in Rebel Without a Cause. The brooding, misunderstood high schooler felt completely real on screen, but Dean was in his mid-20s at the time.
Sal Mineo, who played the younger Plato, was also older than his character. The film captured teenage frustration so perfectly that age barely mattered.
Dean’s performance remains one of Hollywood’s most iconic portrayals of youth, even decades later.
11. Blackboard Jungle (1955) – Sidney Poitier as Gregory Miller

Blackboard Jungle tackled the real and raw issue of juvenile delinquency in American schools, and Sidney Poitier played Gregory Miller, one of the rebellious students. Poitier was 28 at the time, playing someone years younger.
His performance was powerful and deeply human, earning widespread praise despite the age gap. The film was groundbreaking for its time, and Poitier’s commanding screen presence made every scene feel authentic regardless of whether he looked like a teenager or not.
12. The Karate Kid (1984) – Ralph Macchio as Daniel LaRusso

Ralph Macchio had one of those rare faces that could pass for a teenager well into adulthood. When he played 17-year-old Daniel LaRusso in The Karate Kid, he was actually 22 years old, though you would never guess it.
His youthful look worked so well that he continued playing young roles for years. Daniel’s journey from bullied newcomer to karate champion is one of the most satisfying underdog stories in film history, age gap and all.
13. Footloose (1984) – Kevin Bacon as Ren McCormack

Kevin Bacon played Ren McCormack, the city kid who moves to a small town where dancing is banned and decides to fight back. Bacon was 25 years old during filming, playing a high school student who just wants to cut loose.
The role launched Bacon into stardom and gave the world one of the most energetic dance scenes in movie history. His confident performance made the age difference completely invisible to audiences watching in theaters.
14. American Graffiti (1973) – Richard Dreyfuss as Curt Henderson

George Lucas directed this nostalgic coming-of-age film set on the last night of summer before college, and Richard Dreyfuss played Curt Henderson, a recent high school graduate unsure about his future. Dreyfuss was 25 or 26 during production.
The film also featured a young Harrison Ford and Ron Howard, creating an incredible ensemble. American Graffiti captured a specific teenage feeling so well that the age of its actors never once became a distraction for viewers.
15. Never Have I Ever (2020) – Darren Barnet as Paxton Hall-Yoshida

Netflix’s Never Have I Ever charmed audiences with its story of an Indian-American teen navigating grief, crushes, and high school drama. Darren Barnet played Paxton, the school heartthrob, and was already in his mid-20s when the show began.
By the time season two premiered, he had turned 30 while still playing a high schooler. To his credit, Barnet’s charm and energy made Paxton feel genuinely teenage, and fans adored him throughout every season of the show.
16. Hannah Montana (2006) – Jason Earles as Jackson Stewart

Disney Channel’s Hannah Montana was built around Miley Cyrus as a teenager living a double life as a pop star. Her on-screen brother Jackson was played by Jason Earles, who was 29 or 30 when the show first aired.
He was playing a 16-year-old while nearly twice that age, which is a pretty remarkable acting feat. The show ran for four seasons, meaning Earles played a high schooler well into his early 30s without most young viewers ever suspecting a thing.
17. Wet Hot American Summer (2001) – Paul Rudd as Andy

Wet Hot American Summer is a comedy that parodies 1980s summer camp films, and Paul Rudd played Andy, a lazy and self-absorbed camp counselor typically portrayed as a young adult fresh out of high school. Rudd was 31 at the time.
The whole film leaned into the joke of obviously older actors playing younger roles, giving it a wonderfully absurd comedic tone. Rudd’s deadpan performance became one of the funniest parts of the entire movie.