↑ Количество игр и голов за профессиональный клуб считается только для различных лиг национальных чемпионатов, обновлено по состоянию на 5 октября 2024 года.
↑ Количество игр и голов за национальную сборную в официальных матчах.
С 2006 по 2007 год выступал за «Кубань», в составе которой провёл 57 матчей, в которых забил 9 голов в лиге.
С января 2008 года — игрок футбольного клуба «Крылья Советов». С самарским клубом был подписан 4-летний контракт.
Перед сезоном 2009 года находился на просмотре в «Рубине». Под руководством Курбана Бердыева провёл два сбора, но в команде не остался[3][4].
С 2011 — игрок «Ростова». После прихода в клуб Юрия Белоуса и Сергея Балахнина был, вместе с ещё шестью игроками, сначала выслан в дубль, а затем отлучён от тренировок команды. Ему перестали выплачивать заработную плату[5]. Иванов был вынужден обратиться в суд[6].
24 декабря 2011 года стал игроком «Терека»[7]. Начиная с сезона 2012/13 являлся игроком основы и вице-капитаном. Осенью 2014 года согласился перейти в ЦСКА, но трансфер в итоге сорвался[8], а зимой 2014 года к нему проявляло интерес московское «Динамо»[9]. В январе 2021 года расторг контракт по обоюдному согласию[10].
21 января 2021 года подписал контракт на 1,5 года с клубом «Уфа»[11]. 30 мая 2022 покинул «Уфу»[12]. В июне 2022 года перешёл в «Рубин»[3].
Карьера в сборной
14 мая 2008 года Олег Иванов получил свой первый вызов в национальную сборную: он был включён в список 25 футболистов, приглашённых главным тренером сборной РоссииГусом Хиддинком для подготовки к Евро-2008. В окончательную заявку из 23 игроков Иванов, как и Александр Павленко, включён не был из-за перенасыщения средней линии[13], однако по согласованию с тренерским штабом «Крыльев Советов» остался в расположении сборной для участия в тренировочном процессе. 7 июня, в день начала турнира, Олег Иванов всё-таки был заявлен на Евро-2008 вместо основного нападающего сборной Павла Погребняка, получившего травму колена 28 мая в товарищеском матче с Сербией (2:1), не провёл на поле ни минуты, но получил бронзовую медаль. Кроме того, и после Евро Иванов вплоть до июня 2015 года оставался единственным игроком той сборной, что не провёл за неё ни одного матча.[источник не указан 65 дней]
7 июня 2015 дебютировал в сборной в товарищеском матче против Белоруссии, выйдя на замену в начале второго тайма вместо Алана Дзагоева. Участник чемпионата Европы 2016 года. Все три матча провёл на скамейке запасных.
Академия
В ноябре 2015 года в Москве основал футбольную академию для детей 4-12 лет[14].