Родился 11 июля 1919 года в селе Николо-Берёзовец (ныне село Берёзовец Галичского района Костромской области). Детство и юность провёл в городе Ярославле. В 1937 году окончил 10 классов. В 1937-1938 гг. работал лаборантом на лакокрасочном заводе "Свободный труд" (город Ярославль). В 1938-1941 гг. учился в Государственном центральном институте физической культуры (город Москва), в 1940 году окончил 2 курса, в апреле 1941 года - аэроклуб Метростроя.
С апреля 1941 года в рядах Красной Армии. В мае 1942 года окончил Черниговскую военную авиационную школу лётчиков. С мая 1942 года - лётчик 2-го ЗАП (город Володарск, ныне Нижегородской области). С сентября 1942 года - лётчик 31-го ИАП.
С 14 апреля 1943 года сержант О. Н. Смирнов на фронтах Великой Отечественной войны в составе того же 31-го ИАП (лётчик, старший лётчик, заместитель командира и командир эскадрильи). Летал на Ла-5 и Ла-7. Воевал на Юго-Западном и 3-м Украинском фронтах. 28 ноября 1943 года сбит в воздушном бою, покинул самолёт с парашютом.
К февралю 1945 года заместитель командира эскадрильи 31-го истребительного авиационного полка (295-я истребительная авиационная дивизия, 17-я Воздушная армия, 3-й Украинский фронт) старший лейтенант О. Н. Смирнов совершил 314 боевых вылетов, в 93 воздушных боях сбил лично 20 самолётов противника (в наградном листе говорится о 18 личных и 6 групповых победах). За эти подвиги представлен к высшей награде страны.
К 9 мая 1945 года командир эскадрильи 31-го истребительного авиационного полка старший лейтенант О. Н. Смирнов совершил 401 боевой вылет, провёл 120 воздушных боёв, в которых сбил лично сбил 21 самолёт противника.
Указом Президиума Верховного Совета СССР от 18 августа 1945 года старшему лейтенанту Смирнову Олегу Николаевичу присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» (№ 8049).
Демобилизован он был в 1947 году в звании капитана. После этого он поселился в Москве.
Олег Николаевич скончался 24 октября 1994 года, был похоронен на Рогожском кладбище, затем в мае 2015 года перезахоронен на Троекуровском кладбище.
Награждён орденами: Ленина (18.08.1945), Красного Знамени (07.01.1944, 31.01.1945), Отечественной войны 1-й степени (16.02.1944, 11.03.1985), Красной Звезды (25.07.1943), Славы 3-й степени (17.12.1944); медалями, югославским орденом Партизанской Звезды 1-й степени, другими иностранными наградами.