Han har spilt over 300 obligatoriske kamper for TIL, hvorav 239 Tippeligakamper. Han ble Norgesmester i 1996 etter 2-1 mot Bodø/Glimt i finalen. Hafstad har flere kamper på aldersbestemte landslag, fra U18 til U-21. Thomas var med da Norge tok bronsemedalje i EM U18 i 1992 og deltok i VM U20 i Australia året etter.