Сын вице-адмирала Якова Саввича Барша, родился в 1728 году в Вологодской губернии, начал службу с 1736 году, в качестве недоросля, волонтёром в Балтийском флоте, и через 10 лет получил первый чин унтер-лейтенанта. Как отличный морской офицер, Барш быстро достиг капитанского ранга и командовал кораблями в практическом плавании флота в Балтийском море, в частности в 1752—1754 годах командовал брандвахтенным фрегатом «Св. Яков». 21 марта 1757 года определён преподавателем в Морской шляхетный кадетский корпус и 21 января 1758 года произведён в капитан-лейтенанты.
В 1765—1767 годах последовательно командовал кораблями «Св. Екатерина», «Тверь» и «Три Святителя». 29 января 1769 года назначен командиром батальона 1-й флотской дивизии, однако эту должность занимал недолго, поскольку в том же году, при отправлении эскадры адмирала Г. А. Спиридова в Средиземное море, Барш был назначен командиром корабля «Святослав», с которым, по причине повреждений, возвратился из Копенгагена в Ревель, и поступил в состав эскадры контр-адмирала Эльфинстона, отправившейся в том же 1769 году из Балтики в Средиземное море. Перезимовав в Портсмуте, Барш принял в командование корабль «Саратов», и с той же эскадрою достиг Архипелага, где при Наполи-ди-Романия в 1770 году участвовал в неравном бою с турецким флотом, окончившемся отступлением турок. За это сражение Барш 1 августа 1771 года был награждён орденом св. Георгия IV класса (№ 122 по кавалерскому списку Судравского и № 143 по списку Григоровича—Степанова)
В силу каких-то недоразумений с Эльфинстоном, Барш, по распоряжению последнего, исполнял на том же корабле с 26 мая по 27 июля должность младшего лейтенанта, и в этой должности был участником Чесменского сражения, после которого возвратился из Архипелага в Санкт-Петербург и был назначен командиром корабля «Св. Пантелеймон».
С 1773 года Барш, будучи произведён в контр-адмиралы, плавал с флотом, ежегодно в Балтийском море, причём в 1774 году командовал Ревельской эскадрой. 6 ноября 1774 года награжден орденом Св. Анны. В 1788 году, в чине вице-адмирала, был назначен главным командиром Архангельского порта.
По случаю начавшейся войны со Швецией, он привёл порт в оборонительное положение, выслал в Белое море крейсеры для патрулирования и построил канонерские лодки для защиты двинских устьев. 8 сентября 1790 года награжден орденом Св. Александра Невского.
В 1790 году Барш был произведён в полные адмиралы, а 30 сентября 1797 года уволен от службы. Среди прочих наград имел орден Св. Владимира 4-й степени.
Скончался 2 января 1806 года в своём имении в Вологодской губернии, похоронен на кладбище Спасо-Прилуцкого монастыря Вологодского уезда.
Сыновья Ивана Яковлевича, Николай и Иван, также служили в российском военном флоте и были кавалерами ордена св. Георгия 4-й степени, кроме того, Николай был Вологодским гражданским губернатором.