Родился в с. Резино Усть-Таркского района Новосибирской области.
В 1972 окончил Новосибирский сельскохозяйственный институт (ныне — Новосибирский государственный аграрный университет) по специальности «агроном», в 1995 — Академию народного хозяйства при правительстве РФ.
Кандидат экономических наук.
После окончания вуза работал агрономом, управляющим отделением совхоза «Большевик» Мошковского района Новосибирской области. В апреле 1976 г. был назначен директором совхоза. Избирался депутатом сельского, районного, областного советов народных депутатов.
Был членом КПСС до ее запрета в 1991.
В 1990 избран народным депутатом РСФСР по территориальному округу №530 (Новосибирская область). Входил во фракцию «Аграрный союз», депутатский блок «Народное единство». Был членом комитета по социальному развитию села, аграрным вопросам и продовольствию.
В феврале 1993 участвовал в создании Аграрной партии России, избран заместителем председателя партии Михаила Лапшина. Возглавил Новосибирскую областную организацию АПР. Также был председателем Координационного комитета представителей трудовых коллективов агропромышленного комплекса Новосибирской области.
Депутат Государственной думы Федерального собрания РФ всех семи созывов.
12 декабря 1993 был избран в Государственную думу РФ I созыва от Новосибирской области (Барабинский одномандатный округ №124). В Думе был заместителем председателя фракции Аграрной партии России, членом парламентского комитета по аграрным вопросам.
17 декабря 1995 вновь избран в Госдуму РФ II созыва от Аграрной партии России по Барабинскому одномандатному округу №124 (набрал 36% голосов). Возглавил Аграрную депутатскую группу, был членом думского комитета по аграрным вопросам.
В преддверии очередных парламентских выборов 1999 в АПР начались разногласия между сторонниками Николая Харитонова, выступавшими за присоединение партии к избирательному списку КПРФ, и сторонниками председателя АПР Михаила Лапшина, которые высказывались за самостоятельное участие партии в выборах. В итоге в АПР произошел раскол: на внеочередном съезде партии было принято решение присоединиться на выборах к блоку «Отечество – Вся Россия». В свою очередь группа Николая Харитонова в знак протеста покинула съезд и заявила о вхождении в блок с коммунистами.
На думских выборах 1999 Николай Харитонов был включен в общефедеральный список КПРФ, одновременно баллотировался в Госдуму в Барабинском округе №124 Новосибирской области. 19 декабря 1999 был избран депутатом Госдумы III созыва от Барабинского одномандатного округа (53,34%). В Госдуме возглавил Агропромышленную группу и вновь вошел в комитет по аграрным вопросам.
Выступал за сохранение сотрудничества Аграрной партии России с КПРФ. В связи с этим 20 мая 2000 было приостановлено членство Николая Харитонова в центральном совете АПР.
17 мая 2002 стал председателем Агропромышленного союза России, который объединил прокоммунистические аграрные организации. Возглавлял союз до июля 2005
31 мая 2003 был снят с руководящих постов в правлении и центральном совете Аграрной партии.
На парламентских выборах 7 декабря 2003 вновь одержал победу в Барабинском одномандатном округе Новосибирской области (56,4%) и стал депутатом Государственной думы IV созыва. Вошел в состав фракции КПРФ и занял пост первого заместителя председателя думского комитета по аграрным вопросам.
В декабре 2003 был выдвинут КПРФ на выборы президента России: на съезде компартии за Николая Харитонова проголосовали 123 делегата, за его соперника — Геннадия Семигина — 105. На президентских выборах 14 марта 2004 Николай Харитонов набрал 13,69% голосов и занял второе место среди шести кандидатов на высший государственный пост.
30 июня 2007 заявил о своем выходе из Аграрной партии России.
2 декабря 2007 избран в Госдуму РФ V созыва по списку КПРФ (№3 в общефедеральной части списка). Был членом фракции коммунистов, первым заместителем председателя комитета по аграрным вопросам.
В ноябре 2008 вступил в КПРФ и вошел в состав президиума ЦК партии.
4 декабря 2011 вновь стал депутатом Государственной думы: в парламент VI созыва избран по списку КПРФ от Краснодарского края. Член фракции КПРФ. С 21 декабря 2011 — председатель комитета по региональной политике и проблемам Севера и Дальнего Востока.
С 18 сентября 2016 — депутат Госдумы РФ VII созыва от КПРФ. Баллотировался в составе федерального списка партии (возглавлял региональную группу №1, Республика Адыгея, Краснодарский край) и по Армавирскому одномандатному округу №52 (Краснодарский край). Был избран по Армавирскому округу, набрав 35,23%. Вновь возглавил комитет по региональной политике и проблемам Севера и Дальнего Востока (с 5 октября 2016 г.). Член фракции КПРФ.
С 2021 г. — депутат Государственной думы РФ VIII созыва. Был избран 19 сентября 2021 г. от партии КПРФ по федеральному округу. Был выдвинут под девятым номером общефедеральной части списка кандидатов от партии, однако после исключения из нее Павла Грудинина фактически баллотировался под восьмым номером.
Полковник ФСБ в запасе.
Награжден орденами Александра Невского (2019), Дружбы (2014). Имеет благодарности президента (2009) и правительства (2019) РФ.
Отмечен медалью «За трудовую доблесть».
Заслуженный работник физической культуры РСФСР, заслуженный работник сельского хозяйства РФ.