James McAvoy naît le 21 avril 1979 à Glasgow. Après une enfance difficile passée dans une maison communale aux côtés de ses grands-parents, il envisage de devenir prêtre. Il confiera plus tard avoir voulu rejoindre la prêtrise pour pouvoir quitter sa région natale. Il se réoriente vers la comédie et est diplômé de la Royal Scottish Academy of Music and Drama en 2000. Le jeune homme enchaîne les castings et décroche plusieurs petits rôles à la télévision et au cinéma. En 2003, son rôle dans Les Enfants de Dune lui vaut d’être remarqué du grand public. En 2004, sa prestation dans la mini-série Jeux de pouvoir est saluée et l’acteur tourne dans le premier film de Stephen Fry, Bright Young Things. L’année suivante, il est à l’affiche du premier volet du Monde de Narnia. Après avoir figuré dans Le Dernier roi d’Ecosse en 2006, il est acclamé pour son interprétation dans le film Reviens-Moi. En 2011, il devient le professeur X de la saga X-Men.
Côté vie privée, l’acteur a partagé sa vie avec l’actrice Emma Nielsen jusqu'en 2003. En 2004, il rencontre Anne-Marie Duff lors du tournage de la série Shameless. Le coup de foudre est immédiat et le couple convole en 2006. Le couple donne naissance à un petit garçon, Brendan, en 2010. Mais en mai 2016, le couple annonce son divorce. Dans une interview pour The Guardian, parue le 3 février 2022, il confirme qu'il s'est marié avec Lisa Liberati, sans préciser la date de leur union.