Иван Иванович Михельсон родился 3 мая 1740 года в городе Таллин, Эстония. В 1754 году записан на службу в Лейб-гвардии Измайловский полк. В феврале 1755 года произведен в офицеры и назначен в 3-й мушкетерский полк.
В составе означенного полка Михельсон участвовал в Семилетней войне, где получил ранения. В 1760 году в чине капитана уволен в отставку для излечения ран. По выздоровлении около года командовал 3-м батальоном Казанского пехотного полка, а в 1761 году назначен в Новгородский пехотный полк находившийся при осаде Кольберга. В 1763 году переведен в Астраханский гренадерский полк, а в 1769 году — в Астраханский карабинерный полк.
В начале турецкой кампании 1770 года секунд-майор Иван Михельсон командовал эскадроном в составе Астраханского карабинерного полка. В сражении при Ларге во главе своего эскадрона первым ворвался в неприятельский лагерь, захватив восемь пушек, получил ранение пулею в руку навылет. Принимал участие в сражении при Кагуле.
После того, произведенный за Ларгу в премьер-майоры Иван Иванович Михельсон назначен в Каргопольский карабинерный полк, также действовавший в составе отдельного корпуса генерал-поручика Веймарна в Малой Польше против барских конфедератов. За боевые подвиги 24 апреля 1772 года награжден чином подполковника, позднее переведен в Санкт-Петербургский карабинерный полк.
В декабре 1773 года Михельсон назначен с полком в войска, отправленные против Пугачева под командованием генерал-поручика Бибикова. Полк прибыл в Казань 2 марта 1774 года, а 18 марта подполковнику поручен отдельный отряд. Иван Иванович нанес решительный удар Пугачеву, а затем, переправившись вслед за ним на правый берег Волги, продолжал преследование его людей, и в 25 верстах от Черного Яра в 100 км от Царицына у Солениковой ватаги 5 сентября нанес им окончательное поражение.
За заслуги в разгроме пугачевского восстания Иван Михельсон получил от Екатерины II имение в Витебской губернии, золотую шпагу, украшенную бриллиантами, позднее получил чин полковника Санкт-Петербургского карабинерного полка.
В 1775 году Михельсон назначен вице-полковником кирасирского Военного ордена Святого Великомученика и Победоносца Георгия полка. В 1778 году произведен в генерал-майоры и награжден орденом Святого Александра Невского. В 1781 году стал командиром лейб-гвардии Конного полка.
Во время шведской войны 1788-1789 годов Иван Михельсон командовал корпусом в армии генерала Мусина-Пушкина. В 1797 году получил чин генерала от кавалерии. В 1803 году назначен белорусским военным губернатором, управляющим по гражданской части в Витебской и Могилевской губерниях. В 1805 году ему вверено начальство над войсками, собранными на западной границе, а в 1806 — начальство над Молдавской армией.
Иван Иванович Михельсон умер 17 августа 1807 года в Бухаресте. По завещанию, забальзамированное тело генерала перевезено в село Иваново и похоронено в построенной им церкви Иоанна Предтечи. Могила уничтожена после Октябрьской революции.