Cresciuto nelle file dell'AIS, nel 2001 è passato ai Marconi Stallions. Ha militato nelle file degli Azzurri per tre stagioni, totalizzando 53 presenze e 13 reti in campionato. Nell'estate 2004 si è trasferito nei Paesi Bassi, firmando un contratto annuale con il Feyenoord[1][2]. Nella stessa finestra di mercato è stato ceduto in prestito stagionale ai belgi del Westerlo[3], club con cui ha totalizzato 16 presenze e 2 reti in campionato. Nel 2005 è rientrato in patria, firmando per il Queensland Roar[4]. L'11 febbraio 2006 si è trasferito al Sydney FC[5]. Ha militato nelle file del club fino al 2011, vincendo la A-League 2009-2010 e totalizzando 30 reti in 104 presenze in campionato. A livello individuale, inoltre, ha ottenuto il titolo di giocatore dell'anno del Sydney FC nel 2010[6]. Dopo cinque stagioni nelle file del Sydney FC, il 1° febbraio 2011 si è trasferito in Giappone, allo Shimizu S-Pulse[7][8]. Nell'esperienza giapponese, durata due stagioni, ha totalizzato 56 presenze e 13 reti in campionato. Il 27 settembre 2012 si è trasferito all'Al-Ain[9][10], club degli Emirati Arabi Uniti. Ha militato nelle file del club emiratino per due stagioni, totalizzando 39 presenze e 14 reti in campionato. Il 26 giugno 2014 è tornato al Sydney FC[11][12]. Nominato capitano della squadra nell'ottobre 2014[13], ha militato nelle file del Sydney FC per altre cinque stagioni, vincendo due campionati ed una FFA Cup. Dopo cinque stagioni al Sydney FC, il 15 aprile 2019 ha annunciato il proprio ritiro al termine della stagione[14][15][16].