Родился 25 октября 1938 года в в Воронеже. Его отец, капитан РККА, погиб в 1945 при освобождении города Бреслау (Вроцлав).
Окончил Бакинское ВВОКУ (1961; с отличием), Военную академию имени М. В. Фрунзе (1971; с золотой медалью (стипендия им. В. И. Ленина), Военную академию Генерального штаба (1981; с золотой медалью (стипендия им. М. И. Кутузова)).
В декабре 1994 году не принял командование операцией в Чечне «ввиду её полной неподготовленности» и подал рапорт об увольнении из Вооруженных сил РФ. Прокуратура постановлением от 24 января 1995 года отказала в возбуждении в его отношении уголовного дела «за отсутствием состава преступления». В апреле 1995 уволен из армии «по состоянию здоровья».
Избирался депутатом Верховного Совета СССР по Ужгородскому территориальному избирательному округу, Верховного Совета Армянской ССР, Верховного Совета Украинской ССР. В 1989 был избран народным депутатом СССР, входил в депутатскую группу «Отечество».
В 1995 был избран депутатом Государственной думы России второго созыва от Автозаводского одномандатного избирательного округа. Также баллотировался по общефедеральному округу от избирательного блока «Демократический выбор России — Объединённые демократы». Был председателем подкомитета по вопросам строительства и комплектования Вооружённых Сил и других войск Комитета Государственной думы по обороне. Не входил в депутатские фракции. Работал над законами «О военной реформе в Российской федерации», «О гражданском контроле над военной организацией Российской Федерации», «О гражданской службе, альтернативной службе».
В 1999 году был избран депутатом Государственной думы России третьего созыва по списку Союза правых сил (СПС). Заместитель председателя Комитета Государственной думы по обороне. Член фракции СПС.
В 2003 году баллотировался в депутаты Государственной думы России по списку СПС. В 2005 году баллотировался в Московскую городскую думу по списку «Яблока» (в который вошли представители СПС).
После избрания в Государственную Думу второго созыва вступил в партию «Демократический выбор России» (ДВР), был членом политсовета ДВР. 23 апреля 2000 года на учредительном съезде был избран в состав политсовета движения «Либеральная Россия», однако в одноимённую партию не вошёл. Член федерального политсовета СПС. До января 2006 был председателем Московского городского отделения СПС. Советник директора Института экономики переходного периода Егора Гайдара.