Город Змеиногорск расположен в Рудном Алтае, у южного подножия Колыванского хребта, вокруг горы Змеиной, на высоте 450 м, в 360 км к юго-западу от Барнаула, на реке Карболиха и ее притоке реке Змеевке, на 45 км северо-восточнее железнодорожной станции Третьяково.