Родился 18 октября 1946 г. в г. Мурманске.
В 1972 г. окончил Московский энергетический институт, в 1979 г. - аспирантуру Московского института управления им. Серго Орджоникидзе (ныне - Государственный университет управления).
Кандидат экономических наук.
С 1972 г. был членом Коммунистической партии Советского Союза (КПСС).
Трудовую деятельность начал в 1972 г. инженером Московского радиозавода.
С 1973 по 1975 г. заведовал отделом Московского городского совета по научно-исследовательской работе студентов Московского городского комитета ВЛКСМ.
С 1976 по 1982 г. - заведующий отделом Научно-исследовательского института комплексного развития народного хозяйства, Москва.
В 1982-1987 гг. - заместитель, первый заместитель председателя исполкома Бауманского районного Совета народных депутатов Москвы.
С 1987 по 1989 г. - секретарь Бауманского райкома КПСС. В 1989-1991 гг. - председатель исполкома, председатель Совета народных депутатов Бауманского района Москвы.
В 1990 г. избран депутатом, заместителем председателя Московского городского Совета народных депутатов (Моссовет) от блока "Демократическая Россия". С 1991 г. - председатель Моссовета (сменил Гавриила Попова), занимал этот пост до роспуска Моссовета указом Президента РФ Бориса Ельцина от 7 октября 1993 г.
В 1992 г. возглавил московскую организацию "Гражданского союза" (коалиции партий, организаций и парламентских фракций).
В декабре 1993 г. был избран депутатом Совета Федерации Федерального собрания РФ I созыва по Московскому городскому округу №77. Председатель комитета по бюджету, финансовому, валютному и кредитному регулированию, денежной эмиссии, налоговой политике и таможенному регулированию.
С 1995 по 2021 г. - депутат Государственной думы РФ.
17 декабря 1995 г. избран депутатом Государственной думы РФ II созыва по Центральному одномандатному округу №202 г. Москвы (баллотировался от группы избирателей). На выборах получил 26,3% голосов, второе место в округе занял историк Федор Шелов-Коведяев от "Демвыбора России - Объединенных демократов" - 11,93%. В Госдуме Николай Гончар не входил в состав какой-либо фракции или группы (независимый депутат). Был членом комитета ГД по бюджету, налогам, банкам и финансам.
В 1997 г. возглавил "Блок Николая Гончара" на выборах в Московскую городскую думу, однако по итогам голосования блок в гордуму не прошел (7,8%).
19 декабря 1999 г. он был избран депутатом Государственной думы III созыва по московскому Центральному одномандатному избирательному округу №202, набрав 32,24% (был выдвинут группой избирателей). Его основной соперник - журналист Александр Минкин (также был выдвинут избирателями; в 2024 г. признан иноагентом) - набрал 23,92%. В Госдуме Николай Гончар был независимым депутатом, входил в думский комитет по бюджету и налогам.
С 1999 по 2003 г. входил в состав Парламентского собрания Союза России и Белоруссии (с 2000 г. - Союзное государство), возглавлял рабочую группу по проблемам устойчивого развития комиссии Межпарламентской ассамблеи государств - участников СНГ по экономике и финансам.
7 декабря 2003 г. избран депутатом Государственной думы IV созыва по Центральному одномандатному округу №202 (Москва). Баллотировался в качестве самовыдвиженца, по итогам голосования получил 36,57% голосов (второе место - самовыдвиженец Александр Плешаков, 13,13%). Николай Гончар вошел во фракцию "Единая Россия". Был членом комитета по бюджету и налогам, комиссии по противодействию коррупции. Возглавлял комиссию по вопросам практики применения избирательного законодательства РФ.
2 декабря 2007 г. был избран в Госдуму V созыва в составе федерального списка кандидатов, выдвинутого партией "Единая Россия". Член комитета по бюджету и налогам.
4 декабря 2011 г. вновь избран депутатом Государственной думы РФ VI созыва в составе федерального списка "Единой России", вошел в состав партийной фракции. В 2011-2015 гг. был членом думского комитета по бюджету и налогам, в 2015-2016 гг. - председатель комитета по финансовому рынку.
С 2013 по 2016 г. - секретарь политсовета Московского городского регионального отделения "Единой России". Был членом президиума генерального совета партии.
В 2016-2021 гг. - депутат Госдумы РФ VII созыва. Избран 18 сентября 2016 г. от партии "Единая Россия" по Центральному одномандатному избирательному округу №208 (Москва). Получил на выборах 34,25% голосов, его основной конкурент - коммунист Павел Тарасов - 12,86%. В Госдуме Николай Гончар стал членом фракции "Единая Россия".
Награжден орденами Дружбы (2006), "За заслуги перед Отечеством" IV степени (2011). Имеет благодарность правительства РФ (2019).