Иван Пуни родился на семейной даче в посёлке Куоккала на Карельском перешейке (в то время территория Великого княжества Финляндского в составе Российской империи, ныне пос. Репино в Курортном районе Санкт-Петербурга). Его родители были выходцами из Италии. Его дед по отцовской линии Цезарь Пуни — известный балетный композитор. Отец Альберт (в православии Андрей) Пуни — виолончелист Мариинского театра.
В 1915—1916 годах Иван Пуни был членом творческого союза художников-авангардистов «Супремус», создателем которого был Казимир Малевич. Его квартира в принадлежавшем его отцу доме 1 на Гатчинской улице в Санкт-Петербурге, где он жил после возвращения из Парижа с женой с 1913 по 1915 год, была местом встреч художников и поэтов, авангардистов и футуристов. В 1917 году он был инициатором создания выставки «0,10».
Вместе с другими художниками-супрематистами сотрудничал с кооперативами декоративно-прикладного искусства в деревнях Вербовка и Скопцы.
В 1919 году Иван Пуни преподавал в Художественном институте в Витебске под началом Марка Шагала.
Иван Пуни был женат на Ксении Богуславской, которая тоже была художником-авангардистом, а также дизайнером и поэтессой. В начале 1920-х годов они эмигрировали — сначала в Германию, потом во Францию. В этот период И. Пуни подписывался на французский манер Pougny (в отличие от исходного итальянского написания фамилии Pugni).
В 1946 году Иван Пуни принял французское гражданство. Скончался в Париже 28 декабря 1956 года.