Вырос в шахматной семье. Научился играть в четырехлетнем возрасте. Занимался в шахматной школе при Ленинградском Дворце пионеров под руководством Вячеслава Шишмарева. В начале девяностых его наставником был Андрей Лукин. Окончил экономический факультет Ленинградского государственного университета.
Чемпион СССР до 18 лет 1990 года. В том же году победил на чемпионате мира до 16 лет в Сингапуре, повторил свой успех в 1992 в группе среди игроков не старше 18 лет в Германии.
Был участником нескольких чемпионатов Ленинграда, в 1990 превзошел соперников и завоевал чемпионский титул. В 1999 победил на чемпионате России. В составе команды России дважды становился первым на олимпиадах (1998 и 2000). На чемпионате ФИДЕ 2001/2002 дошёл до 3-го этапа, где проиграл Е. Барееву. Обладатель Кубка России 2006. На чемпионате Европы в 2007 году в Дрездене разделил 1-е место с 6-ю другими участниками. В тай-брейке уступил Э. Сутовскому и занял 6-е место. В международных турнирах: 1-е место в Дортмунде (1991), Дохе (1993), Таллине (2001) и Копенгагене (2005).
Часто выступает в клубных соревнованиях. Среди прочего принимал участие в чемпионатах России (команды «ТПС-Саранск» и «Шахматная федерация Санкт-Петербурга»), Германии (Bremer SG, SG Porz), Франции (Mulhouse Philidor) и Сербии.
Пробует свои силы на тренерском поприще. Ассистировал Владимиру Крамнику, Александру Халифману, Нане Иоселиани и Евгению Алексееву. Является автором нескольких книг, в первую очередь по шахматной теории.