Thompson grew up in White Rock, British Columbia, Canada, a small town near Vancouver. His mother ran a film society that brought independent movies to town. Thompson had always expressed an interest in becoming an actor to his parents; and at a young age, Thompson, along with the rest of his family, began taking background roles in productions in Vancouver. After the sixth grade, Thompson decided that he didn't want to continue going to school and convinced his mother to homeschool him. Soon after Thompson began attending an acting school. Thompson signed with an agent he was introduced to through the school and began attending auditions.
Thompson began his acting career with voice acting roles on animated television series and made small appearances in a few television series. He provided voices on Infinite Ryvius, MegaMan NT Warrior, InuYasha and Master Keaton. Thompson appeared in episodes of Jeremiah, Tru Calling and the mini-series Living With the Dead. His first major live-action television role came in 2002 when he played the character James Barns on Canadian children's television series I Love Mummy. Thompson made his first film appearance with a small role in the 2003 film Dreamcatcher. In 2004, Thompson played the character of Jinto in three episodes of the science fiction television series Stargate Atlantis. Thompson also had small film roles in 2004's Superbabies: Baby Geniuses 2 and 2005's The Sandlot 2. In 2005, Thompson provided the voice for the character Simon Star in the animated television series Trollz. That same year, Thompson got a recurring role in the Canadian children's television series Zixx as Dwayne, one of the new main characters introduced in the show's second season. In 2008, Thompson reprised the role in the third season of the series. In 2006, Thompson made a guest appearance on an episode of Smallville and had a recurring role in the short-lived ABC Family series Three Moons Over Milford. Thompson landed his first major film role as Hal Hefner, the protagonist in 2007's Rocket Science, a coming of age film about a stuttering boy who joins the high school debate team. Directed by Jeffrey Blitz, the film was well-received, earning a Grand Jury Prize nomination at the Sundance Film Festival. Thompson's next film, Zombie Ville USA, sees him starring alongside Mischa Barton and Bruce Willis. The film was released straight to DVD on 6 October 2009. Thompson is also featured in Afterwards, a French-Canadian film production starring Romain Duris, Evangeline Lilly and John Malkovich. It is set to be released in Europe in December 2008. In 2010, Thompson played a small-town stoner in Daydream Nation, starring opposite Kat Dennings Also in 2010, Thompson played the sensitive Marshall in Ceremony, alongside Uma Thurman and Michael Angarano. He was also featured into the film Bloodworth paired by popular actress Hilary Duff, released in May 2011 In 2012, Thompson appeared in the film The Perks of Being a Wallflower, based on the popular novel of the same name, and starring Logan Lerman and Emma Watson.