Окончил Морской кадетский корпус (1867), академический курс морских наук в Морском училище (1873), Минный офицерский класс (1878). С 1879 года минный офицер клипера «Жемчуг», в 1884 году произведен в капитан-лейтенанты, командовал миноноской «Селезень». В 1885 году получил чин капитана 2 ранга, назначен старшим офицером клипера «Жемчуг», в 1886-м — старшим офицером броненосца «Петр Великий», с 1887-го — старшим флаг-офицером штаба начальника судов Морского училища. Командовал канонерской лодкой «Бурун» (1889—1890), заведовал учебной командой строевых квартирмейстеров и командовал клипером «Разбойник» (1890-1894). В 1894 году произведен в капитаны 1 ранга и назначен морским агентом в Англии. С 1896 года командир крейсера I ранга «Владимир Мономах», в 1900 году командовал эскадренным броненосцем «Петр Великий», являлся председателем комиссии по испытанию и приему мин, заведующим командами 1-й флотской дивизии Балтийского флота. В 1901 году произведен в контр-адмиралы и назначен начальником штаба Кронштадтского порта.
С февраля 1903 года младший флагман Тихоокеанской эскадры, за участие в отражении атаки японских миноносцев в ночь с 26 на 27 января 1904 награждён орденом Св. Станислава 1-й степени с мечами (22.03.1904). После гибели С. О. Макарова 31.03 временно вступил в исполнение обязанностей командующего флотом, 03.04 приказом Е. И. Алексеева возвращен на прежнюю должность. После сражения 28.07 принял на себя обязанности командующего эскадрой, но 24 августа 1904 сдал должность Р. Н. Вирену, будучи формально назначен в распоряжение Е. И. Алексеева. В 1906 году уволен со службы по болезни с мундиром и пенсией и с производством в вице-адмиралы.