Новопетровский находится на правом берегу реки Вязовня. Через посёлок проходит просёлочная дорога. Севернее расположена деревня Новики.