Во главе роты Преображенского полка участвовал в Азовских походах (1695, 1696 гг.). В качестве командира полка сражался при Нарве (1700 г.), Нотебурге (1702 гг.) и Ниеншанце (1703 г.).
В 1704—1720 гг. занимал пост обер-коменданта Санкт-Петербурга. Успешно руководил обороной города в 1704 г., 1705 г. Допустил просчеты во время подготовки первой осады Выборга (1706 г.). Принял активное участие в обороне Санкт-Петербурга в 1708 г.
В ходе осады Выборга в 1710 г. командовал войсками на главном направлении готовившегося штурма. Самостоятельно руководил осадой и взятием крепости Кексгольм (1710 г.).