Thomas made his AFL debut in Round 1 of the 2007 season, scoring no goals but five behinds in a loss against Collingwood.
In 2010 Thomas led North Melbourne's goalkicking with 29 goals which included 7 against Carlton in Round 12.
The 2011 season was not a successful season for Thomas. He struggled badly with inaccuracy at goal and was at one stage dropped from the senior side. He finished the season with 21 goals and 36 behinds.
In 2012, Thomas' accuracy improved greatly and he kicked 38.19 for the season. 38 goals for a season was his highest so far. He played 19 games for the year, and was held goalless in only 3 of them. He played his 100th game in Round 12, 2012, against Gold Coast. In September 2012, he signed a two-year deal with the club until the end of 2014.[1]
In 2013, Thomas had a career-best season, slotting 53 goals. He also finished seventh in the Coleman Medal, the highest position for a small forward that year.
In the 2014 season Thomas he finished with 45 goals and played in 23 games.[2] He continued to play well in 2015 and 2016 and kicked 34 and 37 goals in the seasons respectfully and played in nearly all games.[3]
Thomas was delisted by North Melbourne at the end of the 2017 season. Port Adelaide flagged their interest in him following his delisting and then drafted him in the 2017 AFL rookie draft.[4][5]
Thomas made his debut for Port Adelaide in round 5 of the 2018 season, kicking one goal in a 34 point loss to Geelong.[2]