James Horsfield (Hazel Grove, Stockport, 30 november 1995) is een Engels voetballer die doorgaans als verdediger speelt.
Horsfield speelde in de jeugd van Manchester City. Dat verhuurde hem in 2015 voor een maand aan Doncaster Rovers. Hij zat één keer op de bank bij het eerste elftal van Manchester City, tijdens een wedstrijd uit tegen Leicester City (0-0). De Engelse club verhuurde Horsfield in januari 2017 voor een half jaar aan NAC Breda. Daarvoor maakte hij op 3 februari 2017 zijn debuut, in een met 2-1 verloren wedstrijd uit tegen FC Den Bosch. Hij kwam in de 46e minuut in het veld voor Fabian Sporkslede. Horsfield promoveerde aan het eind van het seizoen met NAC via de play-offs naar de Eredivisie. Hij trad in juli 2017 definitief in dienst bij de Nederlandse club, waar hij voor drie seizoenen tekende. Na het seizoen 2017/18, waar hij weinig aan spelen toe kwam, vertrok Horsfield met een vrije transfer naar Scunthorpe United FC. In januari 2019 werd hij voor een half jaar verhuurd aan Dundee FC. In het seizoen 2019/20 kwam hij weer niet aan spelen toe bij Scunthorpe, dus werd hij in oktober voor een maand aan Wrexham AFC verhuurd. Deze huurdeal zou verlengd worden, ware het niet dat Horsfield ernstig aan zijn knie geblesseerd raakte en hij voor de rest van het seizoen uitgeschakeld was. In 2020 maakte hij definitief de overstap naar Wrexham. Hierna speelde hij in het Engelse amateurvoetbal voor Clitheroe FC en Chester FC.