С 2006 по 2007 год выступал за «Кубань», в составе которой провёл 57 матчей, в которых забил 9 голов, в лиге.
С января 2008 года — игрок футбольного клуба «Крылья Советов». С самарским клубом был подписан 4-летний контракт.
С 2011 — игрок «Ростова». После прихода в клуб Юрия Белоуса и Сергея Балахнина был, вместе с ещё шестью игроками, сначала выслан в дубль, а затем отлучён от тренировок команды. Ему перестали выплачивать заработную плату. Иванов был вынужден обратиться в суд.
24 декабря 2011 года — стал игроком «Терека».
14 мая 2008 года Олег Иванов получил свой первый вызов в национальную сборную: он был включён в список 25 футболистов, приглашённых главным тренером сборной России Гусом Хиддинком для подготовки к Евро-2008. В окончательную заявку из 23 игроков Иванов, как и Александр Павленко, включён не был из-за перенасыщения средней линии, однако по согласованию с тренерским штабом «Крыльев Советов» остался в расположении сборной для участия в тренировочном процессе. 7 июня, в день начала турнира, Олег Иванов всё-таки был заявлен на Евро-2008 вместо основного нападающего сборной Павла Погребняка, получившего травму колена 28 мая в товарищеском матче с Сербией (2:1).
Командные
Личные