Начал заниматься футболом в СДЮШОР «Динамо» Барнаул, детские тренеры Виктор Штерц, Александр Горбунов[2]. Играл в любительских барнаульских клубах ВРЗ (2007), «Полимер» (2008), «Динамо» Бийск (2010).[3] 3 мая 2010 сыграл гостевой матч 1/256 финала Кубка России 2010/11 против барнаульского «Динамо» (0:1).[4] В начале 2011 года перешёл в «Динамо» Барнаул, за которое дебютировал в первенстве ПФЛ 15 мая в домашнем матче с братским «Сибиряком» (2:0). Сыграл в сезоне 28 матчей, пропустил 27 голов. Сезон 2012/13 провёл в клубе первенства ФНЛ «Металлург-Кузбасс» Новокузнецк — 13 игр, 17 пропущенных голов. В следующем профессиональном сезоне не выступал, играл за клуб «ШЦ VIANOR» из первой лиги чемпионата Барнаула.[5] В сезоне 2014/15 вернулся в «Металлург», в 24 играх первенства ПФЛ пропустил 18 мячей. Затем играл за команды ФНЛ «СКА-Хабаровск» (2015—2016) и «Кубань» (2016—2018).
Летом 2018 года перешёл в «Анжи». Дебютировал в российской Премьер-лиге 28 июля 2018 в гостевой игре с «Уралом», отыграл матч на ноль, а его клуб добился победы со счётом 1:0[6]. В 16-м туре в матче против московского «Динамо» отметился голевой передачей на Андреса Понсе[7]. В апреле 2019 года заявил, что покинет «Анжи» по окончании чемпионата из-за долгов клуба[8] Несмотря на вылет команды из РПЛ, попал в символическую сборную турнира по итогам сезона по версии ресурса WhoScored, как вратарь, совершивший наибольшее количество полезных действий.[9].