Родился 19 ноября 1914 года в селе Ясное Порховского района в семье крестьянина. Окончил пять классов. Работал в колхозе. Потом жил в Ленинграде. В Красной Армии и на фронте Великой Отечественной войны - с июня 1941 года.
Командир отделения 271-го гвардейского стрелкового полка 88-й гвардейской стрелковой дивизии гвардии старший сержант И. Г. Горшанов 19 августа 1944 года в бою у населенного пункта Ясинец (40 километров северо-западнее г. Демблина, Польша) заменил раненого командира и продолжал руководить подразделением до выполнения боевой задачи. Вывел из строя до десяти гитлеровцев, пулемет. 7 сентября 1944 года награжден орденом Славы 3-й степени.
3 февраля 1945 года при овладении населенным пунктом Лессиг (13 километров южнее г. Кюстрина, Германия, ныне г. Костшин, Польша) помощник командира взвода первым вместе с подчиненными ворвался в опорный пункт и уничтожил засевших в одном из домов гитлеровцев, чем содействовал успеху других подраздлений. Истребил около десяти немецких солдат. 31 марта 1945 года награжден орденом Славы 2-й степени.
В апреле-начале мая 1945 года в боях за Берлин уничтожил до двадцати и пленил четырех гитлеровцев. 15 мая 1946 года награжден орденом Славы 1-й степени.
В 1945 году демобилизовался. Жил в г. Норильске, работал на шахте. Затем переехал в Ленинград. Награжден также медалями.
Умер 26 ноября 1979 года.
Литература:
Горшанов Иван Григорьевич // Корнеев Н. П. Подвиги героев бессмертны / Н. П. Корнеев, О. В. Алексеев. - Псков, 2005. - С. 241-242.