Родился 23 августа 1977 года в Ярославле.
Воспитанник местной хоккейной школы.
В 1993—1998 годах играл за ярославский молодёжный клуб «Торпедо»-2, а в 1995—2009 годах за сам «Торпедо» / «Локомотив».
Играл также за «Торпедо» Нижний Новгород (1999—2000), «Лада» Тольятти (2002—2003), «Салават Юлаев» Уфа (2009—2010), «Атлант» Московская область (2010—2011); выступал за «Динамо» Москва (2011—2013), вместе с которым стал двукратным обладателем Кубка Гагарина. 1 мая 2013 года вернулся в родной ярославский «Локомотив».
2 мая 2016 года подписал однолетний контракт с «Сочи», за который провел 27 игр в регулярном чемпионате КХЛ.
22 декабря 2016 года перешёл в ХК «Амур», где 18 февраля 2017 года, после игры с ярославским «Локомотивом» завершил профессиональную карьеру хоккеиста.
10 сентября 2017 года избран депутатом муниципалитета города Ярославля седьмого созыва по одномандатному избирательному округу № 8. На выборы был выдвинут партией «Единая Россия».