Родился 27 августа 1923 в деревне Старый Чулым (близ современного города Чулым) ныне Чулымского района Новосибирской области.
Участник Великой Отечественной войны, командир пулемётного расчёта 1052-го стрелкового полка 301-й стрелковой дивизии 5-й ударной армии 1-го Белорусского фронта, младший сержант. Герой Советского Союза.
В марте 1943 года Чулымским райвоенкоматом призван в Красную Армию. После учёбы в полковой школе младших командиров в звании младшего сержанта и должности командира расчёта станкового пулемёта был направлен в 1052-й стрелковый полк 301-й стрелковой дивизии 57-й Армии. В действующей армии — с мая 1943. Боевое крещение получил в составе 1052-го стрелкового полка под станцией Миллерово (Ростовская область): часть подверглась авианалётам немецкой авиации. После этого подразделение приняло участие в затяжных боях на Миус-фронте (Донбасская наступательная операция, лето 1943).
Воевал на Юго-Западном (май—октябрь 1943), 4-м Украинском (осень 1943), 3-м Украинском и с 22 февраля 1944 — на 1-м Белорусском фронтах.
В рядах 301-й стрелковой дивизии Ворошилов участвовал в боях на Миус-фронте, в ликвидации Никопольского плацдарма, освобождал Донбасс, такие крупные города, как Макеевка и Донецк, форсировал Днепр. В одном из боев 12 ноября 1943 года был ранен. Лишь в феврале 1944 года он вернулся на фронт, воевал в частях в составе 1-го Белорусского фронта, ведущих бои на территориях Белорусской ССР, Польши и Германии. Отличился в Ясско-Кишинёвской операции.
Участвовал в боях за освобождение Польши. Отличился в январе 1945 года в боях при прорыве вражеской обороны на Магнушевском плацдарме и форсировании реки Пилица: 14 января 1945 года в бою за населённый пункт Выборув (западнее города Магнушев, Польша); в бою у села Збышкув; в бою у полустанка Грибово, где во время огневого налёта младший сержант Ворошилов со своим расчётом зашёл в тыл немцев и неожиданно открыл пулемётный огонь. Было уничтожено до взвода вражеских солдат. За два дня боевых действий при прорыве обороны противника расчёт Ворошилова уничтожил 62 гитлеровца и 5 огневых точек. Указом Президиума Верховного Совета СССР от 27 февраля 1945 года за образцовое выполнение заданий командования и проявленные мужество и героизм в боях с немецко-фашистскими захватчиками младшему сержанту Геннадию Николаевичу Ворошилову присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда».
В составе своего полка сержант Ворошилов форсировал реку Одер, сражался на улицах Берлина. За годы войны был трижды ранен, контужен.
После окончания войны служил в составе контингента советских войск в Германии, в 1947 году демобилизовался. Вернулся на малую родину, в город Чулым.
В 1953 году переехал в город Томск.
Более 20 лет Геннадий Николаевич являлся членом президиума Фонда мира и согласия.
Имя Героя выбито на стеле установленной в Томске в 2001 году.