2002년 울산 현대에서 데뷔하여, 팀의 K리그 1회 우승 (2005년), K리그 2회 준우승 (2002년, 2003년)에 공헌하였다. 2006년 1월 러시아 프리미어리그 팀 FC 제니트 상트페테르부르크로 이적하여 활약하였고, 2005-06시즌 UEFA컵 본선 무대에 진출하여 로센보르그 BK와의 32강전 2차전에서 데뷔하였다. 세비야 FC와의 8강전 2차전에서 1골을 기록하는 등 좋은 활약을 펼쳤지만, 통역 과정에서 오해가 발생하여 교체되기도 하였다. 하지만 자신에게 계속 러브콜을 보냈던 블라스티밀 페트르옐라 감독이 성적 부진으로 경질된 뒤 아드보카트 감독이 새로 부임하자 거의 출전하지 못하였고, 2007년 친정 팀 울산 현대로 복귀하였다. 울산 현대로 복귀한 뒤 2007년 하우젠 컵 우승 등에 공헌하였으며 2010년 김치곤을 상대로 FC 서울로 트레이드되었다.