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