10 Actors Who Played Teenagers Despite Being Way Older
Rachel McAdams in Mean Girls
Rachel McAdams absolutely owned the role of Regina George, but she was 26 while playing a high school junior. That’s a solid age gap, especially for a movie set in classrooms, cafeterias, and messy teen drama. If you look closely, she does have a more grown-up look than some of the other students. But her energy is so confident that it works.
Shirley Henderson in Harry Potter
Shirley Henderson played Moaning Myrtle, who died at 14, but Henderson was 36 when she filmed Chamber of Secrets. That’s a massive gap, even with the ghost angle. But Myrtle is meant to be dramatic, whiny, and kind of ridiculous, and Henderson nails that energy. Her voice and expressions help sell the “teen” vibe more than you’d expect.
Shay Mitchell on Pretty Little Liars
Shay Mitchell was 23 when she started playing Emily Fields, a 16-year-old high school sophomore. She doesn’t look like a real-life sophomore, but she also wasn’t the most extreme case in teen TV casting. The show’s overly polished look made most of the characters feel a bit older anyway.
Stacey Dash in Clueless
Stacey Dash was around 27–28 when she played Dionne, a high school junior, and it shows, just a little. She looked polished and confident in a way that most teenagers don’t. But Clueless is stylish, bright, and a bit cartoonish on purpose, so nobody really cares about perfect realism. Dionne’s whole vibe is “fashion queen,” and Stacey fits that effortlessly.
Chase Stokes on Outer Banks
Chase Stokes was 27 when he began playing John B., a 17-year-old high school junior. In the early episodes, the age gap stands out; he’s tall, mature-looking, and doesn’t really read as a teen. But Outer Banks quickly becomes more about adventure than school, which helps a lot. Once the show dives into treasure hunts and survival situations, you’re not thinking about homework or prom anymore.
Keiko Agena on Gilmore Girls
Keiko Agena played Lane Kim, a 16-year-old high school sophomore, but she was 27 in season one. The show did a decent job styling her like a teen, but her maturity still peeks through sometimes. That said, Lane’s story is so relatable; strict rules at home, sneaking music, trying to find herself that viewers connect with her more than they question her age.
Zendaya on Euphoria
Zendaya plays Rue, a 17-year-old high school junior, but she was 22 in season one. That’s still a gap, but it’s not the kind that shocks people right away. Zendaya has a youthful look, and her performance feels real, which helps a lot. Also, Euphoria isn’t a typical “teen show” in how it looks or feels, everyone is styled in a more mature way, so older casting doesn’t stand out as much.
Joe Keery on Stranger Things
Joe Keery was 23 when he started playing Steve Harrington, a 17-year-old high school junior. That gap isn’t shocking, but it’s noticeable once you know it—especially because Steve has that “older cool guy” look. The funny part is, Steve often acts like someone who’s already out of school anyway, so the casting doesn’t feel too off.
Ashleigh Murray on Riverdale
Ashleigh Murray played Josie McCoy, a high school sophomore, but she was 28 in season one. And yep, Riverdale is one of those shows where almost everyone looks way too old to be in school. Josie is stylish, confident, and carries herself like an adult, so the “teen” label doesn’t always land. But the show is dramatic and glossy, so it kind of expects you to go with it.
Darren Barnet on Never Have I Ever
Darren Barnet was 29 when he played Paxton, a 17-year-old high school junior, and that gap is hard to miss. Paxton is meant to be the dreamy, popular guy, but Barnet looks like someone who could already have a full-time job. Even so, his charm makes the character work, and the show leans into comedy and exaggeration anyway. Once you get used to it, you stop thinking about it.

