Футболом начал заниматься в 7 лет. Учился в петербургских спортивных школах «Смена» и «Зенит». С 2005 года обучался в московской футбольной школе «Академика». Параллельно выступал за ФК «Трудовые резервы» (Москва). В 2007—2009 годах выступал за дублирующий/молодёжный состав «Зенита» (50 игр), в составе которого стал победителем молодёжного первенства-2009. Зимой 2010 года перешёл в московский «Спартак», где выступал за молодёжный состав (24 игры) и вновь выиграл молодёжное первенство.
2 апреля 2011 года дебютировал в Премьер-лиге в гостевом матче 3-го тура против краснодарской «Кубани», заменив заболевшего накануне матча Андрея Диканя; в том матче «Спартак» уступил 1:3[4].
17 апреля в выездном матче против махачкалинского «Анжи» вышел на замену во втором тайме вместо получившего травму Диканя. 20 апреля дебютировал в 1/4 Кубка России против ФК «Краснодар». 24 апреля в матче 6 тура Чемпионата России против нальчикского «Спартака» (1:0) впервые отстоял на ноль[5].
23 июля 2012 года отправился в аренду на один сезон в «Ростов»[6], но сыграл там всего 2 игры.
Первую половину сезона 2013/14 Заболотный провёл в составе фарм-клуба «Спартак-2», выступавшего в Первенстве ПФЛ. В январе 2014 года подписал контракт с «Уралом» на 2,5 года[7]. В апреле 2016 года был признан болельщиками ФК «Урал» лучшим игроком месяца[8]. 8 сентября 2017 года расторг контракт с клубом. В январе 2018 года перешёл в ФК «Ротор» и провел за клуб 13 матчей.
В июне 2018 года перешёл в ФК «Сочи». В июне 2019 года продлил соглашение до лета 2023 года.30 мая 2023 года продлил контракт с клубом до лета 2026 года.
5 сентября 2025 года контракт с «Сочи» был расторгнут по взаимному согласию сторон[9].