James was born in Exeter, Devon, England. He and his family then moved to Jacksonville, Florida, in the United States when he was nine. During his time there, he attended elementary and middle school, before returning to England to attend Madeley High School in Madeley, England.
His breakthrough came in 2008 when he was cast as Prince Arthur, who later becomes the legendary King Arthur, in the BBC One fantasy TV series Merlin. The show was a consistent hit series in the US; its first season was shown on the broadcast network NBC and its second, third, fourth, and fifth seasons on NBC’s affiliate cable network Syfy. Merlin ended its 5-year run in 2012. James went on an exploration of Arthurian legends for BBC Wales, The Real Merlin & Arthur, in 2009.
In 2015, James was cast as a villain in Underworld: Blood Wars. The same year, he appeared in the television series iZombie as recurring character Lowell Tracey, a love interest for main character Liv. He starred as title character Damien Thorn on television series Damien, a sequel to the Omen film series. The show debuted in March 2016 and lasted for one season.