La sua interpretazione nel film drammatico di Kevin Macdonald L'ultimo re di Scozia (2006) gli è valsa diverse nomination, tra cui il BAFTA Award come miglior attore non protagonista. Il film di guerra drammatico romantico, Espiazione (2007), gli è valso una nomination al Golden Globe e la sua seconda nomination ai BAFTA.
Nato a Glasgow, in Scozia, e figlio di Elizabeth (nata Johnstone), infermiera, e James McAvoy, muratore. I suoi genitori divorziarono quando aveva sette anni, e quindi visse con i nonni materni, Mary e James Johnstone, a Drumchapel, un quartiere di Glasgow. Sua madre visse con loro a fasi alterne, mentre tuttora non ha contatti con il padre, interrotti quando aveva 13 anni. Visse un periodo di incertezza nelle decisioni sul proprio futuro da adolescente, volendo prima divenire missionario e successivamente arruolarsi nella Marina britannica. Ha studiato alla St. Thomas Aquinas di Glasgow, una scuola cattolica, e si è laureato alla Royal Scottish Academy of Music and Drama: per mantenersi agli studi ha lavorato anche come panettiere.
Il fascino della recitazione lo attrasse però a sé, e nel 1995 esordì in una pellicola cinematografica con The Near Room, diretto da David Heyman. Nel 2001 partecipa all'horror The Pool. Il primo ruolo che gli permette di ottenere un'ampia visibilità è però quello del faunoTumnus in Le cronache di Narnia - Il leone, la strega e l'armadio diretto da Andrew Adamson, nel 2005. Nell'anno successivo, il 2006, arrivano le prime conferme riguardanti il suo talento: vince un BAFTA come rivelazione dell'anno (Rising Star Award), oltre a essere nominato per la sua interpretazione in L'ultimo re di Scozia.
Nel 2019 recita nel film It - Capitolo due di Andy Muschietti nel ruolo di Bill Denbrough da adulto, lavorando per la terza volta negli ultimi anni accanto all'amica Jessica Chastain che interpreta Beverly Marsh ("X-Men: Dark Phoenix" nel 2019, "La scomparsa di Eleonora Rigby" nel 2013 nei tre capitoli LUI, LEI, LORO). Sempre nel 2019 torna a recitare sulle scene londinesi quando interpreta l'eponimo protagonista del Cyrano de Bergerac al Playhouse Theatre per la regia di Jamie Lloyd.[4]
Vita privata
Nell'ottobre 2006 sposa l'attrice Anne-Marie Duff, conosciuta sul set della serie televisivaShameless. Nel giugno del 2010 la coppia ha avuto un figlio, Brendan.[5] Nel maggio 2016 la coppia annuncia la separazione.[6]. Dal 2019 è sposato con Lisa Liberati, conosciuta sul set di Split, dove era l’assistente del regista M. Night Shyamalan. I due hanno celebrato le nozze in forma privata.
Nelle versioni in italiano delle opere in cui ha recitato, James McAvoy è stato doppiato da:
Stefano Crescentini ne I figli di Dune, Le cronache di Narnia - Il leone, la strega e l'armadio, Penelope, Il quiz dell'amore, Becoming Jane - Il ritratto di una donna contro, Espiazione, Wanted - Scegli il tuo destino, The Conspirator, X-Men - L'inizio, La scomparsa di Eleanor Rigby, X-Men - Giorni di un futuro passato, Victor - La storia segreta del dott. Frankenstein, X-Men - Apocalisse, Atomica bionda, X-Men: Dark Phoenix, It - Capitolo due, His Dark Materials - Queste oscure materie, Together, Nella bolla, Il vangelo secondo Clarence, Speak No Evil - Non parlare con gli sconosciuti