Созополь расположен на болгарском побережье Черного моря, в южной части Бургасского залива, в 35 км к югу от Бургаса. Город разделен на Старый и Новый город, между которыми находится Морской сад.
Созополь соединен искусственной набережной и волнорезом с островом Св. Кирик площадью 80 акров, расположенным в 250 метрах к северо-западу от Созополя. Северная часть полуострова заканчивается мысом Скамни, а южная - мысом Харманите. Вдоль бухты Кореньята до полуострова Колокита проходит новейшая часть города - район Харманите. Полуостров Колокита и залив Каваци отмечают южную границу города.