Parsons was born in Adelaide, South Australia but raised in Colorado and Texas, and later moved to Los Angeles. As a child actor, he did voice-over work dubbing Japanese anime.
In January 2009, Parsons joined General Hospital as con artist Ethan Lovett, for which he was credited for "taking the show by storm" by Soaps In Depth magazine. He was nominated for a Daytime Emmy Award in the Outstanding Younger Actor category for his portrayal. In July 2012, Parsons debuted on Bunheads as Godot. In 2014, Parsons replaced Luke Grimes as James in the final season of True Blood. Parsons appeared on The Originals as exiled werewolf Jackson Kenner from 2014 to 2017. Parsons appeared on Once Upon a Time as Nick Branson / Jack / Hansel from 2017 to 2018.
On March 5, 2018, news outlets announced that Parsons was cast as Max on Roswell, New Mexico. Filming began later that year and the series debuted in January 2019.