W Legii Warszawa rozegrał 123 mecze ligowe, strzelając w nich 8 bramek. W warszawskim zespole występował na pozycji defensywnego pomocnika. W ciągu pięciu lat pełnił funkcję kapitana tej drużyny. W sezonie 2005/2006 wywalczył mistrzostwo Polski. 6 lipca 2007 podpisał dwuletni kontrakt z izraelskim klubem Maccabi Hajfa, gdzie po rozegraniu jednego meczu i zdobyciu Toto Cup przeniósł się do Bene Sachnin. W nowym zespole był podstawowym zawodnikiem; jego drużyna zajęła 3. miejsce w lidze, dające prawo gry w Pucharze UEFA.
Po sezonie 2007/2008 przeniósł się do austriackiej Admiry Wacker Mödling. W przerwie zimowej sezonu 2008/2009 wrócił do polskiej ekstraklasy przechodząc do Lechii Gdańsk. W tym klubie pełnił funkcję kapitana drużyny. Odszedł z drużyny po zakończeniu sezonu 2012/2013 po rozegraniu 125 meczów w lidze i zdobyciu 6 goli. Od sezonu 2013/2014 ponownie był zawodnikiem Ruchu Chorzów. W pierwszym sezonie gry znów zdobył brązowy medal Mistrzostw Polski. W barwach Niebieskich zagrał ponad 200 meczów.
Kariera reprezentacyjna W reprezentacji Polski zadebiutował 12 października 2002 w Warszawie w przegranym 0:1 przez Polaków spotkaniu eliminacji ME 2004 z reprezentacją Łotwy.