Landed his breakout role as Scott McCall on the MTV drama Teen Wolf in 2011. He went on to voice Prince Alonso on Elena of Avalor and played Adam on Jane the Virgin. In 2018, he starred in Truth or Dare alongside Lucy Hale. He then began starring as Gabriel on the Starz series Now Apocalypse.
He starred on the show Doc from 2001 to 2004. He attended Hart High School and sang and played piano as the frontman of the band Lost in Kostko, later renamed Disappearing Jamie.
His parents, Cyndi Garcia and actor John Posey, raised him with his brothers, Jesse and Derek, in Southern California. He became engaged to his childhood friend Seana Gorlick in July 2013 but they called off the engagement in October 2014. In the summer of 2017, he began dating actress Sophia Taylor Ali following his relationship with Bella Thorne in 2016. He and Sophia broke up in 2019.