Cresciuto nelle file dell'Osnabruck, del Toronto Rockets e del St. Catharines Roma Wolves, nel 1994 si è trasferito in Belgio, al Germinal Ekeren. Il debutto con il club viola è avvenuto il 21 agosto 1994, nell'incontro di campionato Germinal Ekeren-Eendracht Aalst (2-3)[3], gara in cui ha siglato la rete del momentaneo 2-0 al minuto 11 del primo tempo. Ha militato nel club viola per quattro stagioni, totalizzando 132 presenze e 50 reti. Nel 1998 si è trasferito all'Anderlecht. Ha debuttato con i Paars-wit il 10 ottobre 1998, nell'incontro di campionato Anderlecht-Harelbeke (3-1)[4], subentrando a Bart Goor al minuto 75. Ha militato nelle file dell'Anderlecht fino al 2001, totalizzando 64 reti in 106 incontri disputati.
Inghilterra: Everton e Fulham
Nell'estate 2001 si è trasferito all'Everton[5][6], club militante nella massima serie inglese, per 4.5 milioni di sterline[6]. Ha debuttato con le Toffees il 15 settembre 2001, in Everton-Liverpool (1-3)[7], subentrando a David Unsworth all'inizio del secondo tempo. Ha militato nelle file dei Blues per tre stagioni, collezionando un totale di 101 presenze e 26 reti. Nel luglio 2004 si è trasferito al Fulham[8] per 1.5 milioni di sterline[8]. Il debutto con la nuova maglia è avvenuto il 21 agosto 2004, nell'incontro di campionato Fulham-Bolton Wanderers (2-0)[9]. Ha militato nelle file dei Whites per tre stagioni, realizzando complessivamente 18 reti in 116 incontri disputati. Al termine della stagione 2006-2007 è rimasto svincolato[10]. Il 29 agosto 2007 è stato ingaggiato dallo Skoda Xanthi[11], club militante nella massima divisione greca. Ha debuttato con la nuova maglia il 22 settembre 2007, nell'incontro di campionato Skoda Xanthi-Asteras Tripolis (2-0)[12], subentrando a Mauro Poy al minuto 71. Ha militato nel club biancorosso per una stagione, totalizzando 28 presenze e 15 reti.
Ultimi anni: Skoda Xanthi, Lierse e Waasland-Beveren
Il 30 agosto 2008 ha firmato un contratto con il Lierse[13], in seconda divisione belga, tornando in Belgio sette anni dopo l'ultima esperienza con l'Anderlecht. Il debutto con i Pallieters è avvenuto il successivo 14 settembre, nell'incontro di campionato Namur-Lierse (2-2)[14]. Ha militato nel club giallonero per tre stagioni, totalizzando 101 presenze e 44 reti. Al termine della stagione 2010-2011 è rimasto svincolato. Il 30 gennaio 2012 viene ingaggiato dal Waasland-Beveren[15], club della seconda serie belga, fino al termine della stagione. Il debutto con la nuova maglia è avvenuto il successivo 24 febbraio, nell'incontro di campionato Waasland-Beveren-Visé (2-0)[16]. Durante questa breve esperienza ha totalizzato 14 apparizioni e 7 reti.