Родился в г. Клин Московской области. В 1975 году окончил Московский институт народного хозяйства им. Плеханова по специальности «экономист». В 1976—1979 годах — экономист, старший экономист Управления финансирования промышленности Министерства финансов РСФСР. В 1979—1983 годах — главный контролер-ревизор Контрольно-ревизионного управления Минфина РСФСР. В 1983—1992 годах работал в бюджетном управлении Минфина РСФСР (РФ), в 1992 году был назначен начальником бюджетного управления Министерства и членом Коллегии.
С 1993 года — заместитель министра финансов РФ; в 1994—1995 годах — и. о. первого заместителя министра финансов; в 1995—1997 годах — первый заместитель министра финансов. Член Правительственной комиссии по вопросам финансовой и денежно-кредитной политики с 1996 года, член Правительственной научно-технической комиссии с 1997 года.
1 сентября 1998 года арестован по подозрению в получении взятки в крупном размере (520 тыс. долларов) за совершение незаконных действий в пользу коммерческого банка «Эскадо». 21 октября 1998 года был снят с должности первого заместителя министра финансов распоряжением председателя правительства Евгения Примакова.
Газета «Завтра» негативно оценила арест Петрова, заявив, что он — «почти единственный русский, патриотически настроенный финансист, рассматривался как возможный министр финансов в коалиционном правительстве Черномырдина», «удар по Петрову — это удар по русскому, патриотическому фрагменту в Минфине», «чистка Минфина от московских министерских кабинетов до областных и уездных структур полностью дезорганизует все управление финансами России в интересах стратегических врагов страны». По мнению газеты, «в либеральных СМИ организована травля» Петрова, а арест мог быть инспирирован Борисом Березовским.
Около трёхсот сотрудников Минфина подписали письмо с просьбой смягчить Петрову меру пресечения и выражением надежды, что следствие «объективно разберется в этом деле» Несколько десятков губернаторов обратились в Генеральную прокуратуру с просьбой освободить Петрова из-под стражи. В апреле 1999 года Петров был освобождён под подписку о невыезде. Осенью 2001 года уголовное дело против Петрова было прекращено «по истечении срока давности». В декабре 2001 года было отменено решение об отстранении от должности первого заместителя министра финансов.
25 декабря 2001 года избран в Совет Федерации от Законодательного собрания Тверской области. Стал членом Комитета по бюджету, членом Комиссии по методологии реализации конституционных полномочий. В январе 2002 года Петров был освобождён от должности заместителя министра финансов в связи с назначением в Совет Федерации. 17 марта 2006 года депутаты Законодательного собрания Тверской области четвёртого созыва вновь избрали Петрова представителем в Совете Федерации (двадцать четыре голоса «за», три «против» и один воздержавшийся). В мае 2009 года деятельность Петрова в Совете Федерации получила единогласное одобрение депутатов.
Женат, имеет двоих детей.