Considerato uno dei migliori centravanti italiani della sua generazione,[2][3][4][5][6] è salito alla ribalta nazionale con il Palermo, con cui ha vinto un campionato di Serie B nella stagione 2003-2004 e il titolo di miglior marcatore del torneo cadetto di quell'anno. Nel 2005 si è trasferito alla Fiorentina, dove ha militato per due stagioni ed è diventato il primo giocatore italiano a vincere la Scarpa d'oro, ottenuta dopo il titolo di miglior marcatore di Serie A nel campionato 2005-2006.[7] Nel 2007 è stato acquistato dal Bayern Monaco, con cui ha conquistato un campionato tedesco, una Coppa di Germania e una Coppa di Lega tedesca nella stagione 2007-2008, oltre a vincere un titolo di capocannoniere di Bundesliga (2007-2008) e di Coppa UEFA (2007-2008). Dopo alcune esperienze in Italia e all'estero, ha chiuso la carriera nel Verona, vincendo un altro titolo di miglior marcatore di Serie A nella stagione 2014-2015, che lo rende il più anziano capocannoniere della storia della Serie A (38 anni e 4 giorni) e unico con la maglia dell'Hellas Verona.[8]