Thomas begon in de jeugd bij Melville United. Als senior debuteerde hij bij Waikato FC en werd hij in 2013 opgenomen in de Olé Football Acadamy. Die stalde hem bij Western Suburbs.
Thomas maakte in september 2013 de overstap naar PEC Zwolle. Daarvoor maakte hij op 30 oktober 2013 zijn debuut, in de derde ronde van de KNVB beker tegen amateurclub Wilhelmina '08. In dit duel scoorde hij direct. Op 20 april 2014 won hij met PEC Zwolle de KNVB beker door in de finale met 5–1 van Ajax te winnen. Thomas maakte de 1–1 en de 2–1.
In de zomer van 2018 verruilde de kleine Nieuw-Zeelander PEC Zwolle voor PSV. De middenvelder beleefde geen goede start, want voordat hij ook maar één minuut had gespeeld voor de Eindhovenaren liep hij al een zware knieblessure op. Dit kruisbandletsel zorgde ervoor dat Thomas' eerste seizoen bij PSV vooral in het teken zou staan van revalideren. Hij maakte uiteindelijk op zondag 6 oktober 2019 zijn officiële debuut voor PSV, in een met 4–1 gewonnen competitiewedstrijd thuis tegen VVV-Venlo. Hij verving toen in de 85e minuut Érick Gutiérrez. Op 27 oktober 2019 maakte hij zijn basisdebuut voor PSV, in speelronde 11 van het seizoen 2019/20 in de Eredivisie, thuis tegen AZ (0–4). Hij kreeg toen na 22 minuten gespeeld te hebben een rode kaart van scheidsrechter Pol van Boekel. Direct nadat hij terugkeerde van de bijbehorende schorsing promoveerde trainer Mark van Bommel hem in de daaropvolgende wedstrijden tot basisspeler. Thomas maakte op 8 februari 2020 zijn eerste doelpunt voor PSV. Hij schoot zijn ploeg toen op 2–0 in een met 3–0 gewonnen competitiewedstrijd thuis tegen Willem II. Een week later kopte hij de 0–2 binnen in een met 0–3 gewonnen competitiewedstrijd uit bij ADO Den Haag. Hiermee scoorde hij voor de eerste keer in zijn profcarrière twee wedstrijden op rij.
Na veel blessureleed en een gebrek aan speelminuten is het contract van Thomas bij PSV, dat in de zomer van 2022 afliep, niet verlengd. Op 26 oktober 2022 maakte PEC Zwolle bekend dat Thomas na vier jaar terug zou keren bij de ploeg uit Overijssel. De middenvelder tekende een contract tot het einde van het seizoen, met een optie tot een langer verblijf. Thomas maakte zijn rentree bij PEC Zwolle als invaller in de thuiswedstrijd tegen Almere City FC, die met 3-2 gewonnen werd.
Thomas debuteerde op 5 maart 2014 in het Nieuw-Zeelands voetbalelftal, in een vriendschappelijke wedstrijd tegen Japan (4–2 verlies). Hij maakte op 28 maart 2017 zijn eerste en tweede doelpunt voor het nationale team, in een met 2–0 gewonnen kwalificatiewedstrijd voor het WK 2018 thuis tegen Fiji. Thomas nam in juni 2017 met Nieuw-Zeeland deel aan de FIFA Confederations Cup in Rusland, waar in de groepsfase driemaal werd verloren.