Родился в семье крестьянина.
Окончил 8 классов, работал в пекарне.
20 августа 1941 был призван в Красную Армию.
С августа 1942 командир расчёта 122-мм гаубицы 823-го артиллерийского полка 301-й стрелковой дивизии 5-й ударной армии Марков сражался на Сталинградском направлении. В оборонительных боях был ранен. За бои под Сталинградом был награждён орденом Красной Звезды. В составе этого же полка Марков участвовал в Ясско-Кишинёвской операции.
25 августа 1944 у села Бозиень, что юго-западнее города Бендеры, старший сержант Марков со своим расчётом поразил свыше взвода живой силы, несколько повозок с боеприпасами, две огневые точки противника. Лично уничтожил трёх вражеских солдат и одного взял в плен. За этот подвиг приказом по 301-ой стрелковой дивизии от 4 сентября 1944 Николай Иванович был награждён орденом Славы 3-й степени.
14 января 1945, действуя в составе своего полка на 1-ом Белорусском фронте, при прорыве обороны противника западнее польского города Магнушев, старший сержант Марков из орудия уничтожил пулемёт, до десяти вражеских солдат, подавил миномётную батарею. Затем, поддерживая наступающую пехоту, бил по огневым точкам врага, ликвидировал пулемёт и орудие. 15 января 1945 в бою на левом берегу реки Пилица, при отражении контратаки противника из орудия прямой наводкой, уничтожил зенитное орудие, пулемёт, рассеял и уничтожил до взвода пехоты врага. Приказом по 5-й ударной армии от 15 февраля 1945 Марков был награждён орденом Славы 2-й степени.
24 апреля 1945 на подступах к Берлину поразил из гаубицы шесть пулемётов, орудие, а в составе батареи подавил три артиллерийских и две миномётных батареи противника. Указом Президиума Верховного Совета СССР от 15 мая 1946 Николай Иванович Марков был награждён орденом Славы 1-й степени.
Также награждён медалями «За освобождение Варшавы», «За взятие Берлина», юбилейными медалями.
После демобилизации Николай Иванович жил городе Усолье-Сибирское Иркутской области.
Умер 20 апреля 1990, похоронен на Аллее Героев кладбища города Усолье-Сибирское.