Селото се намира в Санданско-Петричката котловина на десния бряг на река Струма в североизточните поли на Беласица. Разположено е на 12 километра източно от общинския център Петрич. Климатът е преходносредиземноморски със зимен максимум и летен минимум на валежите. Средната годишна валежна сума е около 500 милиметра. Почвите са излужени канелени горски, алувиално-ливадни и делувиални.
На около 2 километра южно от селото в местността Кременица (в района на гранична пирамида № 63) от двете страни на българо-гръцка граница е разкрито къснонеолитното селище Промахон-Тополница.[2][3]
На днешното си място селото е основано в 1913 година, когато жителите на старото село Тополница, останало по силата на Букурещкия договор на гръцка територия го напускат и се заселват на около 1 километър от него на българска територия и основават Нова Тополница. През октомври 1925 година по време на гръцко-българския граничен конфликт, известен като Петрички инцидент, селото е окупирано и опожарено от гръцката армия. Жителите му се установяват временно в околните села. Днешното село се оформя през 1930 - 1932 година, когато са построени 84 къщи от типа шаронки.[4] В 1966 година селото е прекръстено на Тополница.[5]