Wychowanek Cracovii, w której spędził siedem lat. W latach 1993-1995 występował w Sokole Pniewy. Na początku 1995 roku, w wieku 21 lat, wyjechał za granicę. Występował w Grasshoppers Zurych, AC Lugano, Young Boys Berno, De Graafschap Doetinchem, Feyenoordzie Rotterdam, Partizanie Belgrad, SC Heerenveen, ADO Den Haag i SV Ried. Może pochwalić się dwoma mistrzostwami Szwajcarii (z Grasshoppers), Superpucharem Holandii i Pucharem UEFA (z Feyenoordem).

W reprezentacji Polski wystąpił w 36 spotkaniach, w których strzelił jednego gola. Znalazł się w kadrze na mistrzostwa świata w Korei i Japonii. Podczas turnieju wystąpił w przegranym 0:4 meczu z Portugalią. Występował w eliminacjach do mundialu w 2006 roku, ale ostatecznie nie pojechał na turniej do Niemiec.

Od 1 września 2011 roku pełni funkcję dyrektora reprezentacji Polski ds. kontaktów z mediami.