Né dans une famille de joueur de squash avec son père entraîneur de haut niveau et ses deux demi-frères joueurs de squash, James Willstrop dispose d'un physique atypique avec une taille de 1,91 m et 88 kg. Il s'entraîne au Pontefract Squash Club dans le West Yorkshire, où il est formé par son père, Malcolm Willstrop.
Il couronne une carrière sensationnelle comme junior en 2002 lorsqu'il remporte son troisième titre consécutif au championnat national junior britannique des moins de 19 ans, pour s'établir comme le joueur junior le plus titré de tous les temps en Angleterre - ayant remporté des titres nationaux dans toutes les catégories d'âge (moins de 12 ans, moins de 14 ans, moins de 17 ans, moins de 17 ans et moins de 19 ans), et des trophées au British Junior Open des moins de 14 ans, moins de 17 ans et moins de 19 ans. La même année, il s'impose comme le meilleur joueur junior du monde, remportant à la fois le titre européen et le titre mondial junior.
James Willstrop devient l'un des plus jeunes joueurs à avoir joué pour l'équipe d'Angleterre senior, représentant son pays pour la première fois aux championnats d'Europe et du monde de squash par équipes en 2003.
En 2004, il remporte le titre de l'Open du Pakistan à Islamabad (battant Amr Shabana en quarts de finale) lors de sa première participation à une finale de la Super Série PSA. En 2005, il est finaliste du British Open en tant que tête de série no 7, puis soulève le trophée du Qatar Classic lors de sa deuxième participation en finale de Super Série. Ce premier succès permet à James Willstrop de bondir de six places pour atteindre le deuxième rang mondial dans le classement mondial de PSA publié en décembre de la même année. Le nouveau classement catapulte James Willstrop au poste de meilleur Anglais - ce qui lui vaut d'être promu au premier rang de l'équipe d'Angleterre pour les championnats du monde par équipes 2005 au Pakistan plus tard dans le mois, lorsqu'il mène l'équipe à la victoire pour la première fois en huit ans.
Aux Jeux du Commonwealth de 2006 à Melbourne, il est associé à Vicky Botwright pour obtenir une médaille d'argent en double mixte. James Willstrop remporte également le titre des championnats britanniques de squash 2007, battant John White en finale. En , il aide l'Angleterre à conserver le titre de champion du monde par équipes à Chennai, en Inde.
James Willstrop conserve son titre national britannique en , battant son compatriote Lee Beachill en finale. Il termine également finaliste au British Open pour la deuxième fois en , perdant dans une finale en cinq manches contre David Palmer. James Willstrop obtient des balles de match à 10-9 et 11-10 dans le cinquième jeu, mais David Palmer l'emporte finalement 11-9, 11-9, 11-9, 8-9, 8-11, 6-11, 6-11, 11-10 (3-2).
En , James Willstrop remporte son premier tournoi des champions à New York, battant le numéro un mondial Ramy Ashour en finale et ne perdant qu'un seul jeu pendant tout le tournoi.
Dans la finale en simple des Jeux du Commonwealth de 2010 à Delhi, il est battu par son compatriote Nick Matthew 11-6, 11-7, 11-7, 11-7, 11-7 en 66 minutes.
James Willstrop finit sa saison 2011 en remportant 15 matchs consécutifs pour remporter l'Open de Hong Kong, l'Open du Koweït et le Punj Lloyd PSA Masters. Avec ces 3 titres PSA World Series, Willstrop accède à la première place dans le classement PSA World Series et s'assure une place au sommet de la liste des classements mondiaux. James Willstrop succède à son compatriote Nick Matthew en tant que numéro un mondial en . Nick Matthew reprend sa place de numéro un mondial en battant James Willstrop dans le tournoi des champions 2012 le .
En , James Willstrop est 15e mondial et premier Anglais du classement[6].