Katz, der schon früh dem SV Baiersbronn beitrat, bestritt ab dem Jahr 2005 niederklassige FIS-Rennen, meist nur mit deutscher Beteiligung, bei denen er als bestes Ergebnis einen zweiten Platz erreichte. Nach zwei Starts bei den Juniorenweltmeisterschaften 2007 und 2008 gelang ihm in der Saison 2009/10 der Durchbruch. Im Mai 2009 wurde der Baiersbronner gemeinsam mit fünf weiteren Junioren in den deutschen B-Kader aufgenommen, sodass er im Dezember des Jahres in Düsseldorf erstmals im Weltcup an den Start gehen konnte. Bei seinen ersten beiden Wettbewerben in dieser Serie platzierte er sich jeweils im hinteren Teil des Feldes. Kurz darauf nominierte der deutsche Bundestrainer Jochen Behle Katz für die Tour de Ski 2009/2010, bei der der Athlet jedoch maximal die ersten vier Rennen absolvieren und dann aussteigen sollte.[1] Im Prolog des Etappenrennens zeigte er eine überraschend starke Leistung, belegte den elften Rang und erfüllte damit zugleich einen Teil der Norm, die für die Qualifikation für die Olympischen Winterspiele in Vancouver ausreichte. Nach diesem guten ersten Auftritt fiel der Deutsche im Klassement weit zurück und beendete die Tour planmäßig nach der ersten Hälfte. Am 16. Januar nahm Katz als einziger DSV-Sportler am Weltcup in Otepää teil, wo er zwischenzeitlich auf dem fünften Rang platziert war und schließlich die 20. Position belegte.[2] Ein weiterer Erfolg in diesem Winter war der Gewinn der Bronzemedaille bei den U23-Weltmeisterschaften in Hinterzarten. Dort waren nur der Rumäne Paul Constantin Pepene und der Norweger Ole-Marius Bach besser. Nach dem Rennen erklärte Katz, der die Silbermedaille nur knapp um 0,5 Sekunden verpasst hatte, „Bronze sei für [ihn] Gold wert“.[3] Im Alpencup kam er in der Saison fünfmal aufs Podest und holte in Campra seinen ersten Alpencupsieg. Zum Saisonende belegte er den dritten Platz in der Alpencupgesamtwertung. Zu Beginn der folgenden Saison siegte er über 10 km Freistil beim Alpencup in St. Ulrich am Pillersee. Es folgten drei Starts bei Weltcuprennen, wobei der 30. Platz im Skiathlon in Rybinsk seine beste Platzierung war. Bei den U23-Weltmeisterschaften 2011 in Otepää errang er den 14. Platz im Skiathlon und den siebten Rang über 15 km Freistil. Im Februar 2011 gewann er im Alpencup in Campra und beendete die Saison auf dem zehnten Rang in der Gesamtwertung des Alpencups. Zu Beginn der Saison 2011/12 errang er den 70. Platz bei der Nordic Opening in Kuusamo. Im weiteren Saisonverlauf kam er im Alpencup zweimal auf den zweiten Platz und erreichte den fünften Platz in der Gesamtwertung. Die Tour de Ski 2011/12 beendete er vorzeitig. Bei den Deutschen Skilanglauf-Meisterschaften 2012 wurde er Zweiter über 30 km.
In der Saison 2012/13 belegte Katz den 62. Platz bei der Nordic Opening in Kuusamo und den 38. Rang bei der Tour de Ski. Sein bestes Saisonresultat im Alpencup war der 11. Platz über 15 km klassisch in Goms. Nach Platz 52 beim Weltcup in Davos über 30 km Freistil zu Beginn der Saison 2013/14, startete er Alpencup und erreichte im März 2014 in Valdidentro mit dem dritten Platz in der Verfolgung sein bestes Saisoneinzelresultat im Alpencup. In Oberwiesenthal gewann er zusammen mit Staffel. Bei den Deutschen Skilanglauf-Meisterschaften 2014 wurde er Meister über 10 kmklassisch und im 15-km-Massenstartrennen. In der Saison 2014/15 kam er im Alpencup dreimal unter die ersten Zehn. Dabei war der fünfte Platz im 30-km-Massenstartrennen in Rogla sein bestes Ergebnis. Die Tour de Ski 2016 beendete er auf dem 16. Platz. Dabei erreichte er in Oberstdorf mit dem achten Rang im 15-km-Massenstartrennen seine erste Top-Zehn-Platzierung im Weltcupeinzel. Bei den deutschen Skilanglaufmeisterschaften 2017 in Oberwiesenthal wurde er jeweils Zweiter über 50 km Freistil[4] und zusammen mit Josua Strübel im Teamsprint.[5]
In der Saison 2017/18 kam Katz beim Ruka Triple auf den 31. Platz und bei der Tour de Ski 2017/18 auf den 27. Rang. Bei den Olympischen Spielen 2018 in Pyeongchang nahm Katz an drei Wettbewerben teil und erreichte als beste Platzierung den 14. Platz über 50 km im klassischen Stil. In der folgenden Saison belegte er den 29. Platz bei der Tour de Ski 2018/19 und den 38. Rang beim Weltcupfinale in Québec. Seine besten Platzierungen bei den nordischen Skiweltmeisterschaften 2019 in Seefeld in Tirol, waren der 13. Platz über 15 km klassisch und der sechste Rang mit der Staffel. Nach Platz 40 beim Ruka Triple zu Beginn der Saison 2020/21, kam er mit einem ersten und dritten Platz in Pokljuka auf den achten Platz in der Gesamtwertung des Alpencups.