Свою профессиональную карьеру Иван начал в 2006 году в составе «Зенита-2», сразу заявив о себе – забив гол в дебютном матче.
После нескольких сезонов в молодёжных составах, в 2009 году полузащитник перешёл в подольский «Витязь», но закрепиться в команде не смог. Следующие годы прошли для футболиста в «Петротресте» и петрозаводской «Карелии».
Настоящий взлёт в его карьере произошёл в сезоне 2015/16 в составе «Газовика»: он не только помог команде выиграть ФНЛ и выйти в Премьер-лигу, но и был признан лучшим игроком сезона.
Летом 2016 года Маркелов перешёл в московское «Динамо». В составе бело-голубых полузащитник провёл 13 матчей и забил два гола. Позже играл за «Анжи», где в 28 матчах оформил 4 гола и 4 голевые передачи.
В 2020 году он отправился в Казахстан, подписав контракт с «Кызыл-Жаром», а затем вернулся в Россию, где выступал за «Амкар» и «Тюмень».
В прошлом сезоне Иван Маркелов защищал цвета «Ленинградца».
Иван, добро пожаловать в «Стаю»!
