He did his first commercial at 8 years old for Pringles. He played hockey and tennis while in high school.
He played young Anakin Skywalker in two of the Star Wars films, and his first role was on a Canadian TV series at age 12.
He has an older brother named Tove and an older sister named Hejsa. His younger sister is Kaylen. He began dating co-star Rachel Bilson in 2008 after meeting her on the set of Jumper. He and Bilson had a daughter named Briar Rose on October 29, 2014. In September 2017, the couple announced they were splitting.
He starred alongside Ewan McGregor in the Star Wars Episodes II and III.