В 1961 году поступил в Ленинградское высшее общевойсковое командное училище им. С. М. Кирова и окончил его с отличием в 1965 году. После выпуска четыре года командовал взводом, два года ротой, был начальником разведки полка. С должности командира батальона поступил в Военную академию им. М. В. Фрунзе.
После окончания академии Н. Н. Смирнов три года командовал полком, четыре года был начальником штаба дивизии, а затем — командиром дивизии. 24 апреля 1986 года полковник Н. Н. Смирнов был назначен начальника Ленинградского высшего общевойскового командного училища им. С. М. Кирова, по 1988 год.
С 1988 по 1999 год был военным комендантом города Москвы, сменив на этой должности генерал-лейтенанта В.Д. Серых. Во время августовского путча 1991 года «исполняющий обязанности» Президента СССР Г. И. Янаев одновременно с объявлением чрезвычайного положения в Москве назначил комендантом города Москвы командующего войсками Московского военного округа генерал-полковника Н. В. Калинина. Тем не менее, после инцидента в тоннеле на Садовом кольце в Москве Н. Н. Смирнов, как военный комендант Москвы, принимал участие, вместе с депутатами Верховного Совета РСФСР, в переговорах командиров колонны Таманской дивизии, выполнявшей указания ГКЧП, и защитников Белого Дома. В ту же ночь на 21 августа дал интервью корреспонденту РИА, в котором заявил, что слухи о штурме Белого дома — «грубый вымысел, граничащий с провокацией», и что среди военного руководства нет людей, которые могут отдать приказ о штурме Белого дома, так как это повлечёт за собой пролитие крови.
С 1999 года находится на пенсии, был уволен с должности и из Вооруженных сил по выслуге лет.