Город расположен на юге Ставропольской возвышенности, в предгорьях Большого Кавказа, по южному, юго-западному и отчасти восточному склонам горы Железной, в долине речек Джеймук и Кучук, в 6 км от железнодорожной станции Бештау, в 12 км от Пятигорска, в 191 км от Ставрополя, на высоте 470—650 м над уровнем моря.