Родился 20 апреля 1919 года в селе Кремяное ныне Кореневского района Курской области в семье служащего. После окончания 7 классов работал токарем в Курске
на ремонтном заводе имени М.И.Калинина, одновременно учился в аэроклубе. В РККА с 1937 года. В 1939 году окончил военную авиационную школу лётчиков.
На фронтах Великой Отечественной войны с июня 1942 года. Cтарший лейтенант Леонов Н.И. к ноябрю 1943 года произвёл 173 боевых вылета, в 31 воздушном бою сбил 15 самолётов противника. В январе 1944
года таранил фашистский бомбардировщик Ju-87. Совершил посадку на повреждённом самолёте.
Звание Героя Советского Союза с вручением ордена Ленина и медали "Золотая Звезда" Николаю Ивановичу Леонову присвоено 13 апреля 1944.
После войны продолжал служить в ВВС. В 1951 году окончил Высшие офицерские лётно-тактические курсы. С 1957 года полковник Леонов - в запасе. Жил в городе Батайске Ростовской области. Работал
контролёром на заводе.
Умер 3 мая 1997 года.
Награждён орденом Ленина, 3 орденами Красного Знамени, орденом Отечественной войны 1 степени, 2 орденами Красной Звезды, медалями.