С августа 2013 года — игрок резервной команды «Зенит-2», выступавшей во втором дивизионе. В 2016 году Андре Виллаш-Боаш взял его в основную команду, и 11 мая в матче 28-го тура чемпионата России Иванов дебютировал в основном составе в матче против «Мордовии», выйдя на замену на 89-й минуте вместо Маурисио.
С 1 июля 2016 года на правах аренды выступал за команду «Мордовия». В июле 2017 года подписал контракт с «Томью». Дебютировал в составе сибиряков 22 июля 2017 года в матче с «Олимпийцем». С 7 сентября 2021 года является игроком «Звезды» из Санкт-Петербурга.