He began his career playing for Pisa Barczewo, where he moved to OKS 1945 Olsztyn. Later, Zahorski played for Tecza Biskupiec and again for Pisa. In the 2004/05 season, he moved to OKS 1945 Olsztyn, where he played for until the fall of 2005. In the spring of the 2005/06 season, he began playing in the Orange Ekstraklasa for Dyskobolia Grodzisk Wielkopolski. There he made his debut on in the Ekstraklasa on March 4 against Wisła Kraków, in which Groclin lost 2-1. Tomasz managed to score in the 85th minute. In the 2006/2007 spring season, he was loaned to Górnik Łęczna. From there, he moved to Górnik Zabrze. Since joining, he has played for them in over 60 matches, where he has scored 16 goals. In the Polish Cup, he has played in 7 matches scoring 9 goals. Whilst he has played 8 times in the League Cup scoring four goals.
On June 14, 2007, Zahorski signed a contract with Górnik Zabrze. The club spent 800,000 zloty on acquiring him. He was called up to the Polish National Football Team by Leo Beenhakker. After earning a few caps for the international team, Zahorski began to score more goals regularly in the Orange Ekstraklasa. At the end of the 2007/08 season, he scored 10 goals. During the Silesian Derby on March 2, 2008, Zahorski scored a goal. After four and a half years, Zahorski left Zabrze, to move to German 2. Bundesliga club MSV Duisburg.