Holding werd op achtjarige leeftijd opgenomen in de jeugdopleiding van Bolton Wanderers. Dat verhuurde hem in maart 2015 voor twee maanden aan aan Bury, waarvoor hij één wedstrijd speelde. Holding debuteerde op 11 augustus 2015 in het eerste van Bolton, tijdens een wedstrijd in de League Cup tegen Burton Albion. Zijn eerste competitiewedstrijd volgde vier dagen later, in de Championship tegen Middlesbrough.[3] Hij maakte op 23 januari 2016 voor het eerst een doelpunt, tegen MK Dons.[4] Holding kwam in zijn debuutjaar tot 26 competitieduels en werd na afloop door de supporters van de club uitgeroepen tot speler van het jaar. Bolton eindigde dat seizoen op de laatste plaats en degradeerde naar de League One.
Holding verruilde Bolton in juli 2016 voor Arsenal. Hier nam hij rugnummer 16 over van Aaron Ramsey, die op zijn beurt rugnummer 8 overnam van de vertrokken Mikel Arteta. Hij stond vervolgens zeven jaar onder contract bij Arsenal. Daarin fungeerde hij vrijwel ieder seizoen hoofdzakelijk als reservespeler en sporadische invaller. Alleen seizoen 2020/21 vormde een uitzondering. Holding kwam toen 30 speelronden in actie, waarvan 28 vanaf de aftrap. Dat waren er bijna net zoveel als in de drie jaar daarvoor samen en meer dan in de twee jaar daarna samen. Holding had in zijn jaren bij Arsenal wel zijn aandeel in het winnen van twee FA Cups en twee Community Shields.
Holding verruilde Arsenal in september 2023 voor Crystal Palace. Hier tekende hij voor drie jaar. Hier kwam in zijn eerste seizoen mede door blessures slechts tot één wedstrijd.
Holding speelde in 2016 en 2017 vijf wedstrijden voor Engeland –21, het enige nationale jeugdteam waarvoor hij uitkwam. Hiervan maakte hij ook deel uit op het EK –21 van 2017, maar daarop kwam hij zelf niet in actie.