McCarthy kwam op zijn zestiende terecht in de jeugdopleiding van Reading. Daarvoor speelde hij bij Wimbledon en Wycombe Wanderers. Reading verhuurde McCarthy daarop acht keer aan andere clubs. In vijf seizoenen speelde hij voor Woking, Cambridge United, Team Bath, Aldershot Town, Yeovil Town, Brentford, Leeds United en Ipswich Town. Alleen bij Yeovil Town speelde hij een volledig seizoen. Op 16 september 2012 debuteerde McCarthy uiteindelijk voor Reading in de Premier League, in een wedstrijd tegen Tottenham Hotspur. In 2013 degradeerde hij met Reading uit de Premier League. Tijdens het seizoen 2013/14 kreeg McCarthy de voorkeur als eerste doelman voor Adam Federici.
McCarthy tekende in juli 2015 een vierjarig contract bij Crystal Palace, dat hem voor een niet bekendgemaakt bedrag overnam van Reading.
[1] Hier speelde hij in het volgende seizoen drie competitiewedstrijden. Op zondag 10 mei 2015 degradeerde hij met de club uit de Premier League. Manchester City versloeg de hekkensluiter op die dag met 6-0, waardoor degradatie een feit was. McCarthy daalde niet mee af. Hij tekende in juli 2015 een vierjarig contract bij Crystal Palace, de nummer tien van de Premier League in het voorgaande seizoen. Dat nam hem voor een niet bekendgemaakt bedrag over van QPR.[2] McCarthy deed gedurende het seizoen 2015/16 voornamelijk dienst als reservedoelman achter Wayne Hennessey. Hij tekende in augustus 2016 vervolgens een contract tot medio 2019 bij Southampton, de nummer zes van de Premier League in het voorgaande seizoen.[3]
McCarthy speelde drie wedstrijden voor Engeland –21. Hij zat in de voorselectie van het Brits olympisch voetbalelftal voor de Olympische Spelen in Londen, maar haalde de uiteindelijke selectie niet. In mei 2013 kreeg hij een uitnodiging voor het Engels voetbalelftal voor oefeninterlands tegen Ierland en Brazilië. Hij kwam daarin niet in actie. Nadat hij ook in 2016 en 2018 nog een paar keer op de bank zat, debuteerde hij op 15 november 2018 in het Engelse voetbalelftal. Hij keepte toen de tweede helft van een met 3–0 gewonnen oefeninterland thuis tegen de Verenigde Staten.