Происходил из дворян, родился в селе Третьяковка Рославльского уезда Смоленской губернии.

Получил домашнее образование.

17 августа 1756 г. в возрасте 6 лет записан на военную службу капралом Рославльского драгунского эскадрона.

1 октября 1758 г. произведён в сержанты с переводом в Санкт-Петербургский мушкетёрский полк.

1 октября 1763 г. произведён в прапорщики.

1 января 1765 г. приступил к действительной службе.

Под командованием князя Николая Васильевича Репнина (1734—1801) принимал участие в кампании 1766—68 г. против польских конфедератов, ранен в голову в сражении при Слониме.

В 1768 г. – подпоручик.

С 1770 г. в чине поручика сражался против турок в Молдавии и Валахии под началом генерал-майора Оттона Ивановича фон Вейсмана (Otto Adolf von Weisman) (1726—1773), отличился в рейде за Дунай.

1 января 1772 г. – капитан-поручик.

В 1773 г. тяжело ранен при осаде крепости Силистрия.

В 1774 г. принял участие в Крымском походе.

За отличие при штурме Перекопа произведён в капитаны, участвовал во взятии Бахчисарая, Феодосии и Керчи.

24 ноября 1774 г. произведён в секунд-майоры с назначением в Выборгский мушкетёрский полк.

2 июня 1777 г. переведён в Апшеронский пехотный полк.

15 декабря 1783 г. награждён чином премьер-майора с назначением в Казанский пехотный полк.

В 1786 г. принял участие в экспедициях за Кубань против чеченцев.

С 1 января 1787 г. состоял в Кавказском мушкетёрском полку.

Участвовал в русско-турецкой войне 1787—91 г.

Состоял дежурным офицером при генерал-поручике графе Антоне Богдановиче де Бальмене (1741—1790), 26 октября 1788 г. был ранен в руку и голову в сражении против турок, черкесов и чеченцев в Убинском урочище, 1 января 1789 г. за отличие при штурме крепости Анапа произведён в подполковники.

В 1796 г. принимал участие в Персидском походе под командованием графа Валериана Александровича Зубова.

1 октября 1796 г. за отличие при штурме Дербента награждён чином полковника.

29 ноября 1796 г. возглавил Селенгинский пехотный полк.

В 1797 г. отличился при отражении превосходящих сил персов на реке Иори.

12 декабря 1797 г. – генерал-майор, комендант Оренбурга и шеф Оренбургского гарнизонного полка.

В 1798 г. возглавлял большой поход в степь «для отражения набегов киргиз-кайсацких скопищ на торговые пути в южных пределах Оренбургской губернии».

23 ноября 1799 г. – генерал-лейтенант.

4 марта 1800 г. – комендант Тобольска и шеф Тобольского гарнизонного полка.

26 марта 1802 г. занял пост военного и гражданского губернатора Иркутска.

6 января 1803 г. начал осмотр территории Иркутской губернии для уточнения пограничных с Китаем земель и приступил к сооружению оборонительных укреплений.

В ходе русско-французской войны 1806 г. сформировал из жителей Иркутска и окрестностей ополченческий батальон (600 чел.) и организовал сбор пожертвований в пользу действующей армии (собрал 26 тыс. руб.).

20 августа 1807 г. вследствие расстроенного здоровья вышел в отставку «с мундиром и пенсионом полного жалования» и удалился в своё имение в Смоленской губернии.

С началом Отечественной войны 1812 года и после объявления манифеста императора Александра I-го о созыве ополчения сформировал из своих крепостных крестьян егерскую роту, после чего был избран предводителем ополчения Смоленской губернии, во главе которого присоединился к корпусу генерала Николая Николаевича Раевского.

4 августа 1812 г. сражался при Красном, 5—6 августа отличился при обороне Смоленска, при Бородино возглавлял атаку ополченцев против V-го (польского) корпуса Великой Армии («Эта атака, поддержанная Московскими ополченцами и солдатами Павловского и лейб-Гренадёрского полков, остановила поляков, а подоспевшие казаки Карпова совершенно смяли польскую пехоту и прогнали её до Старой Смоленской дороги»).