Né en Ecosse, il a grandi à Clydebank et a tenu son premier rôle au cinéma en 1969 dans le film de guerre
La Bataille D'Angleterre de Guy Hamilton, suivi par
Les soldats vierges de John Dexter.
En quarante ans, il a tourné plusieurs dizaines de films et productions télévisées, dont
Les Griffes Du Lion de Richard Attenborough,
Highlander de Russel Mulcahy,
Un Lundi Trouble de Mike Figgis,
Trainspotting de Danny Boyle, où il incarnait le père d'Ewan McGregor,
Emma L'Entremetteuse de Douglas McGrath,
Freres Du Desert de Shekhar Kapur,
The Reckoning de Paul McGuigan,
Chungkai Le Camp Des Survivants de David Cunningham, et le téléfilm de HBO « The Last of the Blonde Bombshell ». Il a prêté sa voix à Thelonius l'orang outan dans la version originale de
Babe, Le Cochon Dans La Ville de George Miller.
James Cosmo a été remarqué pour son interprétation de Campbell dans le film oscarisé de Mel Gibson
Braveheart, et plus récemment pour celle de Glaucus dans
Troie de Wolfgang Petersen.
Il a été la guest star de séries britanniques comme « Badger », « The Bill », « Hammer House of Horror », « Quiller », « The Sweeney », « Fairly Secret Army » et « Roughnecks ».
Il a reçu pour l'ensemble de sa carrière et son investissement personnel au serice de causes charitables le Lifetime Achievement Award du Sunday Mail/McEwan's au People's Film Festival.
En 2005, il interprète le Père Noël dans
Le Monde De Narnia - Chapitre 1 : Le Lion, La Sorcière Blanche Et L'Armoire Magique. L'année suivante, il partage l'affiche de
Half Light avec Demi Moore.
En 2007, il joue dans
Les Portes Du Temps de David L. Cunningham.