I must admit to being rather impressed with the bus station in Bourgas (which is next door to the train station) as it actually has easy to read timetables and well signed bus stops. Regular buses run from Bourgas to Sozopol every half hour with a journey time of about 40 minutes for the 30 km journey and, at the time of writing, cost 3.50 Leva. In addition to the regular bus services I also noticed various minibuses which cover the same route but more directly, with a faster journey time and I do believe there is also a bus service from Bourgas's airport.
Sozopol can easily reached by bus from Burgas. During the summer months you can expect to have a service every half an hour from 6am to 9pm. These buses stop at the bus station on ul. Han Krum between the old and the new town. Other buses from here also go to other places on the Southern Black Sea coast.
Comfortable private buses connect Sozopol with all larger towns in Bulgaria. They stop at the main square of the new town where the different companies have their ticket booths.
I travelled from Sozopol to Sofia in about 7 hrs and the ticket was 23 BGN.
There is a small port in Sozopol,s Old Town, it's situated left from the main street, right after the bus-station. The street leading to the pier is lined with many cafes and small restaurants where you can sample local fish.
From there you can get a boat-ride to the island of Saint Ivan or around Sozopol. If you want to spend half a day on the beach on the island you can arrange for a boat to take you there and pick you up later. Just remeber to bring water and food as there ar no shops there!
Around Sozopol you can use a carriage taxi. When you are a little tired by walking it’s great way to rest and to move quickly from Old Town to New Area of Sozopol. It costs about 8-10$
High-frequency bus lines connect Sozopol to Bourgas. In the city you can take a taxi. You can’t miss it- like in NY it has yellow color!!
From New Town to Old Town of Sozopol it costs about 3 $.