Родился 16 мая 1817 г. в слободе Юрасовке Воронежской губернии. Внебрачный сын помещика и крепостной крестьянки-украинки. Высшее образование получил на историко-филологическом факультете Харьковского университета (1833— 1836 гг.).
С юности писал стихи на украинском языке, собрал более 500 украинских песен. В 1844 г. защитил магистерскую диссертацию «Об историческом значении русской народной поэзии», после чего преподавал в учебных заведениях Ровно и Киева. В марте 1847 г. Костомаров был арестован по делу оппозиционного к власти Кирилло-Мефодиевского общества, год провёл в Петропавловской крепости, затем отбывал ссылку в Саратове с запрещением «служить по учёной части».
Являясь чиновником различных учреждений, продолжал заниматься историей, собирать фольклор и издавать свои труды.
С 1859 г., после снятия запрета на преподавательскую деятельность, стал профессором русской истории в Петербургском университете, где его лекции пользовались большой популярностью.
Опубликовал ряд материалов из русского и украинского фольклора.
Костомаров поддерживал дружеские отношения со многими деятелями славянской культуры. Он являлся последовательным сторонником отмены крепостного права, выступал за предоставление автономии университетам.
В марте 1862 г. Николай Иванович вышел в отставку и посвятил жизнь научной работе и литературному творчеству (писал историческую прозу, драмы, рассказы и др.)
В 1864 г. Костомаров был без защиты диссертации удостоен докторской степени. Круг его интересов включал в себя особенности вечевого строя Древней Руси, историю и культуру украинского народа, русско-польские к русско-украинские связи, судьбу массовых народных движений и т. д.
Основной его труд — «Русская история в жизнеописаниях её главнейших деятелей» (в трёх томах, вышли в 1873— 1888 гг.).
Скончался 19 апреля 1885 г. в Петербурге.