Воспитанник ДЮСШ города Сумы. В 1997 году сыграл на первом для себя представительных соревнованиях — «Рождественском турнире» по футзалу, который проходил в Сумах. Олег выступал за команду «Сумской район» (пгт. Степановка) и в четырёх матчах отличился 13 раз — это позволило ему стать лучшим бомбардиром турнира. В 1999 году в 15-летнем возрасте сыграл один матч за «Сумыгаз» в высшей лиге чемпионата Украины по футзалу[3].
Профессиональную карьеру начал в сумском клубе «Фрунзенец-Лига-99». Всего за команду провёл 53 матча в которых забил 17 голов.
Летом 2002 года был замечен главным тренером киевского «Арсенала»Вячеславом Грозным, и руководству «канониров» удалось переманить Олега в свой клуб. Дебютировал в высшей лиге Украины 27 июля 2002 года в матче «Арсенал» — «Ворскла» (2:1).
«Динамо» (Киев)
Летом 2003 года перешёл в «Динамо» (Киев). В то же время Гусев получил приглашение в сборную Украины, и вскоре стал полузащитником основного состава национальной команды. На Чемпионате мира 2006 года Олег забил победный гол в серии пенальти поединка со Швейцарией. После хорошей игры на мундиале Гусевым заинтересовался французский «Олимпик Лион»[4]. Однако президент «Динамо», Игорь Суркис, назвав Гусева одной из будущих звёзд киевского клуба, наряду с Артёмом Милевским, отказался продавать футболиста[5].
В 2008 году стал обладателем Кубка Первого канала. 12 апреля 2008 года в матче чемпионата Украины Гусев перепрыгнул ногу защитника, выполнявшего подкат, и неудачно приземлился. Передние крестообразные связки и два мениска были повреждены. Ему была сделана операция[6]. Олег вернулся на поле 31 октября — отыграл первый тайм во встрече дублёров.
1 июня 2012 года сделал дубль в контрольном матче в ворота сборной Австрии, однако Украина проиграла 2:3. 8 июля 2012 года выбран капитаном команды. 11 января 2016 года продлил контракт с «Динамо» на 5 месяцев, до конца сезона 2015/2016.
30 марта 2014 года в матче чемпионата против днепропетровского «Днепра» во время столкновения с вратарем соперника Денисом Бойко получил травму головы. Первую помощь оказал грузинский легионер «Днепра» Джаба Канкава: он предотвратил западание языка. По утверждению врачей «Динамо», Канкава спас жизнь Гусеву. На следующий день футболиста выписали из больницы[7].
2 ноября 2014 года вышел на замену в матче против «Днепра», который стал для него 500-м в карьере на высшем уровне.
Матч чемпионата против «Зари», который состоялся 20 марта 2016 года, стал для полузащитника 550-м в профессиональной футбольной карьере.
16 декабря 2016 года стало известно, что руководство «Динамо» не будет продолжать сотрудничество с Гусевым.
12 июня 2017 года Гусев вернулся в «Динамо», подписав с клубом контракт сроком на один сезон. Первый матч после подписания провёл против львовских «Карпат» (5:0).
19 мая 2018 года, Гусев провёл последний матч за «Динамо», в котором киевская команда на стадионе имени Валерия Лобановского обыграла донецкий «Шахтёр» со счётом 2:1. Олег на 75-й минуте заменил Николая Шапаренко, сразу же получил капитанскую повязку, но результативными действиями отметиться не успел. Во время выхода Гусева на замену болельщики «Динамо» устроили перформанс и повесили на трибуну плакаты с надписями «Легенда # 20» и «Дякуємо за вірність» («Благодарим за верность»)[10].
Почти сразу по окончании выступлений перешёл на тренерскую работу, став ассистентом Юрия Мороза в молодёжной команде «Динамо». В июле 2020 года вошёл в тренерский штаб Мирчи Луческу в качестве ассистента.