Начальное образование получил дома. Окончил Вологодскую гимназию (1854). Из-за отсутствия средств не смог продолжить образование в университете. Сдав экзамены по русскому языку на звание учителя, преподавал в уездных училищах Вологодской губернии.
С 1862 учитель русского языка в Вологодской гимназии, с 1859 работал в Вологодском губернском статистическом комитете. Публиковал литературно-критические, исторические, экономические и статистические статьи в «Москвитянине», «Журнале Министерства внутренних дел», «Вологодских губернских ведомостях», «Русском слове», «Светоче», «Воронежском телеграфе». Из-за серии критических публикаций о нравах местного дворянства был вынужден покинуть Вологду (1864).
С 1866 преподаватель русского языка в Воронежской военной гимназии. Открыл частную начальную школу, принимавшую детей всех сословий (1867); публиковал отчёты о деятельности школы в педагогических журналах. Участвовал в редактировании «Воронежского телеграфа» (1868—1869), руководил земскими учительскими съездами и курсами (1873—1883). Из-за болезни вышел в отставку, переселился в с. Петино под Воронежем (1884), где создал начальное народное училище.
Из-за обвинений в неблагонадёжности отстранялся от руководства съездами и курсами (1875, 1884, 1900). За выступления против официальной школьной политики был арестован, отправлен в ссылку (1902). Незадолго до смерти Бунакову возвращено право занятия общественной деятельностью.
Основные труды Н. Ф. Бунакова и литературу о нем см. в Научной педагогической электронной библиотеке.