Frei begann seine internationale Karriere im vergleichsweise fortgeschrittenen Alter von 26 Jahren bei einem Rennen im Rahmen des Biathlon-Europacups in Obertilliach. Beim Sprint belegte er Platz 42. Erste Punkte gewann er noch in derselben Saison als 17. im Sprintrennen in Forni Avoltri. Höhepunkt wurde die Europameisterschaft im bulgarischen Bansko, wo er in Einzel, Sprint und Verfolgung Platzierungen zwischen Rang 29 und 32 erreichte. Kurz nach den Titelkämpfen gewann Frei in Haute-Maurienne im Sprint sein bislang einziges Europacuprennen. Auch in der folgenden Saison startete er zunächst im Kontinental-Cup und belegte dort mehrfach Platzierungen unter den besten zehn. Nach diesen Leistungen stieg er in den Weltcup auf und nahm an den Wettbewerben in Oberhof teil. Seinen Einstand gab er als 32. im Sprint und verpasste damit erste Weltcuppunkte um zwei Plätze. Nach sechs Rennen im Weltcup wurde Frei für seine ersten Biathlon-Weltmeisterschaften 2008 in Östersund nominiert. Dort belegte er im Sprint als 37. eine gute Platzierung. In der Verfolgung erreichte er Platz 58, im Einzel Rang 70. Mit der Schweizer Staffel wurde er nur 18. Seine ersten Weltcuppunkte gewann Frei auf der letzten Station der Saison 2007/08 am Holmenkollen in Oslo als 28. im Sprint. 2009 wurde Frei Schweizer Doppelmeister in Sprint und Verfolgung. Im &lt;a href="Biathlon-Weltcup%202009/2010"&gt;Weltcup 2009/2010&lt;/a&gt; erreichte Frei am 19. Dezember 2009 mit Rang drei beim Sprint in Pokljuka seinen ersten Podestplatz. Thomas Frei nahm an den Olympischen Winterspielen 2010 teil. Sein bestes Resultat war der 12. Platz in der Verfolgung. Mit der Staffel belegte er Rang 9.