Rocchi began playing football in his home city of Venice and joined the youth ranks of Venezia at nine years of age. He came up through the ranks in the Venezia junior system before signing for giants Juventus in 1994. Rocchi won the Primavera title with the Turin club that year before moving up to the first team for the 1995–96 season, in which the bianconeri claimed the Champions League title. He did not make any first team appearances however, and soon left the club.
From then on, Rocchi played Serie C football (mainly in Serie C1), playing in 121 matches and scoring 36 goals for Pro Patria, Fermana, Saronno and Como. Como bought Rocchi for 300 million lire (€154,937) in 1998 in co-ownership deal. In June 2000 Como bought Rocchi outright for 900 million lire (€464,811), 600 million lire (€309,874) excess the original fee. He managed to get a chance in Serie B with Treviso, which Como sold half of the registration rights to Treviso in 2000 for 1.4 billion lire (€723,040) and bought back in June 2001.
From Treviso (via Como), Rocchi moved to Tuscany with Empoli, also in Serie B at the time. With Empoli, Rocchi made over 100 appearances, and scored a total of 29 goals, 16 of which came in Serie A, where Rocchi had put in some decent performances during the 2002–03 and 2003–04 seasons. He scored a winner against Inter, on 18 January 2004, and a week later he scored a hattrick against original club Juventus in a 3–3 draw.
These performances earned Rocchi a €1.5 million move to Lazio for the 2004–05 season, in another co-ownership deal.
Rocchi's first goal of the championship for Lazio came on 22 September 2004 against Brescia at the Stadio Mario Rigamonti in a 2–0 win. His finest individual performance of the season was a hattrick against Lecce, and Rocchi ended a successful debut season with 13 goals in 35 league appearances. He also scored twice in the 2004–05 UEFA Cup, his first appearance in European competition. Most significantly however, Rocchi scored the third goal in a 3–1 Derby della Capitale win, the first of these clashes in which he played. In June 2005 Lazio bought him outright for another €2.5 million.
It was during this time that Rocchi began to develop a partnership with teammate Paolo Di Canio. Often creating assists for each other, Rocchi and Di Canio had a good relationship both on and off the field. Di Canio left Lazio in 2006, leaving Rocchi as the major star striker at the club.
Rocchi also had a strong partnership with Macedonian forward Goran Pandev. Often Pandev would play in the hole behind Rocchi, but they were also able to play up front together with a central attacking midfielder behind. Between them, they were Lazio's top goalscorers for three seasons consecutively. A positive 2005–06 season saw Rocchi score a personal best 16 league goals as Lazio finished sixth, a place which was later taken away from them due to the Calciopoli scandal. At first relegation to Serie B was the verdict, but Lazio were soon reinstated to the top flight.
Beginning the 2006–07 season with an eleven-point deduction, a relegation battle appeared on the cards for Lazio, and a slow start did nothing to help the situation. However, the team's form soon improved, and the deduction was reduced to three, making a tilt at a UEFA Champions League place an unlikely yet possible goal. Rocchi backed up his 16-goal haul yet again, as Lazio finished third and qualified for Europe's premier club competition.
The 2007–08 season saw Rocchi make his personal debut in the UEFA Champions League, where he scored a crucial winning goal against Werder Bremen. This season he ended the campaign with 14 Serie A goals. He spent much of the year as captain of Lazio, deputizing for the often injured Luciano Zauri. On 20 February 2008, Rocchi renewed his contract, extending the deal by five years. This contract extension would run until 2013, and effectively ensure Rocchi would remain at the club for the remainder of his career. On 19 March 2008, Rocchi scored his fourth goal in the Derby della Capitale in a 3–2 victory against A.S. Roma.
From a personal perspective, 2008–09 was a poor season for Rocchi. After missing the first two months of the season due to an injury suffered while on international duty at the 2008 Beijing Games, Rocchi never reached his usual goalscoring form, finishing with just 9 for the season; his lowest tally in six years. However, the club won their fifth Coppa Italia title, defeating Sampdoria in a penalty shootout. Rocchi suffered the indignity of being the only Lazio player to fail to convert his spot kick. This season was also his first as the official team captain, after the departure of Zauri to Fiorentina.
At the end of the 2008–09 season, having made over 200 appearances in the Lazio shirt, and having scored 83 goals, Rocchi declared his target was to join an exclusive list of players to have scored 100 goals for the club. This mark had only previously been reached by four players, Silvio Piola, Giuseppe Signori, Bruno Giordano and Giorgio Chinaglia. Rocchi decided to change his number 18 shirt for the number 9, which had previously been worn by all of those four, aside from Signori.
On January 4, 2013, Rocchi, after nine years at Lazio, joined Inter. His new side paid a fee of 300,000 euros to the Roman side. He scored his first goal for Inter on April 7, 2013 against Atalanta in a 3-4 loss from a corner. On 17 April Tommaso Rocchi give his first assist for Inter in Coppa Italia vs AS Roma, Nerazzurri lost the match in San Siro 2-3. On April 21 Rocchi scored his second goal for Inter in San Siro against F.C. Parma, in a 1-0 win for the Nerazzurri.
Rocchi has represented Italy at youth level several times.
In August 2006, following Italy's fourth FIFA World Cup title, new Azzurri boss Roberto Donadoni called Rocchi up to the squad as a reward for his exceptional scoring record in Serie A.
He made his debut against Croatia in the 2–0 loss at 29 years of age. Rocchi played two more matches for the national team on the road to Euro 2008 but did not make the squad for the final tournament.
He was selected as the only overage player in Pierluigi Casiraghi's Olympic team to play at the 2008 Beijing Olympic Games. He scored against South Korea on 10 August.
Updated until 18 September 2015Coppa Italia: 1 (2008–09)
Supercoppa Italiana: 1 (2009)