↑ Количество игр и голов за профессиональный клуб считается только для различных лиг национальных чемпионатов, обновлено по состоянию на 22 ноября 2024 года.
↑ Количество игр и голов за национальную сборную в официальных матчах, обновлено по состоянию на 22 ноября 2024 года.
Воспитанник Белорусского республиканского государственного училища Олимпийского резерва. Профессиональную карьеру начал в неполные 16 лет в клубе третьего по силе белорусского дивизиона «РГУОР-Динамо» (Минск), представляющем спортивную школу при белорусском клубе. Первый тренер — С. С. Пармонов.
Дебютировал в минском «Динамо» в 2006 году. С 2007 года — игрок основного состава клуба.
15 июля 2010 года подписал контракт с российским клубом «Краснодар» на 2,5 года[4]. В дебютном сезоне в первом дивизионе 2010 провёл 15 матчей в основном составе (однажды был заменён). 24 декабря 2012 года продлил контракт с клубом до лета 2015 года с возможностью пролонгации ещё на год[5]. Со второй половины сезона 2012/13 — капитан «Краснодара».
В июне 2015 года на правах аренды перешёл в «Урал»[6]. Сезон 2015/2016 провёл в Урале. В мае 2016 года по окончании срока аренды вернулся в «Краснодар».
19 мая 2022 года стало известно, что футболист по окончании сезона покинет «Краснодар»[7], в составе которого выступал на протяжении 12 лет. В июне заключил соглашение с «Рубином» сроком на два года[8].
В национальной сборной Белоруссии дебютировал 18 ноября 2009 года в товарищеском матче со сборной Черногории в Подгорице (0:1). 17 ноября 2010 года отличился дублем в товарищеском матче со сборной Омана в Маскате (4:0).
В марте 2015 года стал капитаном сборной Белоруссии[9].
20 июня 2011 года получил российское гражданство[10]. Женат на бывшей гимнастке сборной Белоруссии Зинаиде Луниной. Имеет двух дочерей Анастасию и Ксению[11].
С января 2021 года находится в отношениях с Кариной Притченко[12].