After thoroughly enjoying our ride on Florentia Bus from Sofia to Belgrade, we were a little more nervous for our return ride from Belgrade to Sofia. The only option for a direct bus between Belgrade and Sofia was an overnight bus that left at pretty much the worst possible time, 4:30 AM – not early enough to make it a true overnight bus, and not late enough to make going to sleep before the bus worth it.
Still, since we booked return tickets for cheaper online, we were pretty much locked into taking a bus at a heinous hour. So, how was it? Surprisingly more pleasant than we expected, although there were still a few roadblocks we wished we had anticipated beforehand.

How to Get from Belgrade to Sofia Direct by Bus
Part of the reason why we write these write-ups is that it can be quite difficult to find information about routes between Balkan cities in advance. Websites like GoEuro often don’t have all the information you need and routes can fluctuate seasonally. When we do a bus route that we don’t see a recap of online, we usually try to write about it to share our experience and timing.
Until we discovered that Florentia Bus, a bus line that goes from Sofia through Serbia, Croatia, Slovenia, all the way to its destination in Italy, we didn’t realize there were any direct buses between Sofia and Belgrade, despite living in Sofia and taking buses from there frequently. Previously, we were under the impression that we had to take a bus via Niš.
However, Florentia Bus has a direct bus between Belgrade and Sofia that departs at 4:30 in the morning. Yes, not an ideal time for anyone — however, we had already booked our tickets to Belgrade one way and we received a good discount by booking online in advance. Because we booked a return ticket online, our ticket back cost 19.50 euros, whereas it would have cost 29 euros to buy a same-day ticket in person according to the website. A one-way ticket would cost 21.50 euros if booked in advance online. Here’s the website where we booked tickets.

Be aware that you must print out your ticket to show to the bus driver. A phone copy will not suffice. If you buy a round-trip ticket as we did, it will all be on one piece of paper, so you can use the same ticket for both bus rides.
How to Get from Belgrade to Sofia via Niš
It is possible to get to Sofia from Belgrade by way of Niš, the largest city in Southern Serbia. This has more convenient departure times than 4:30 AM, but it involves making a transfer which can be annoying. I couldn’t find info on the actual official website, but Rome2Rio estimates that Belgrade to Niš costs 1,000 Serbian dinars ($10 USD) and then from Niš to Sofia on MATPU is 24 Bulgarian leva / about 1500 Serbian dinar / about $15 USD. So combined it would be about $25 USD, similar to the Florentia Bus price of 21.50 euros if bought online in advance.
The bus from Belgrade to Niš to Sofia is run by Niš Ekspres, which runs in partnership with MATPU, a Balkan bus company that also connects Sofia to destinations in Macedonia and Albania. There are two daily buses between Niš and Sofia: one at 4:30 AM, which has you arriving in Sofia around 8:30 AM, and one at 4 PM, which has you arriving in Sofia around 8:30 PM, give or take 30 minutes. Sofia is one hour ahead of Belgrade, so set those watches.

If you are traveling from Belgrade to Sofia via Niš, the departure times from Belgrade would be at 12:45 AM in order to make the 4:30 AM bus in Niš, and at 12:30 PM in order to make the 4 PM bus.
I tried to buy a ticket online Niš Ekspres’s website from Belgrade to Sofia, and then failing that, from Niš to Sofia and neither worked. So, I would imagine you would have to buy your bus ticket either at the Belgrade bus station or the Niš bus station, but having not done this myself I can’t comment on how this works!
A Few Notes on the Belgrade Bus Station
The Belgrade bus station at night is an odd place. I suppose any bus station at 4:00 AM is an odd place, but we had a minor inconvenience in Belgrade that I’ve never experienced elsewhere.
For one, we weren’t quite sure where to catch our bus. Our taxi driver (we used the app Car.Go while in Belgrade and highly recommend that you download it. It works almost identically to Uber) dropped us off at the same place where our bus dropped us off the first time, adjacent the park. However, we wanted to check with the actual bus station attendant, and it is a good thing that we did because it turns out our bus did not depart from this part of the station, but rather this part pictured below (BAS).

We had to walk across the park to the main bus station area, which was pretty abandoned feeling. Once we arrived, we walked to window #14, which was indicated on our bus tickets that we had printed out. At window #14, we spoke to the attendant. He was very helpful and spoke good English but we were pretty surprised to find out that we had to pay 180 dinars in order to access the bus platform.
At first, I thought I was being asked to pay a bribe (which surprised me, as I’ve spent over a month traveling Serbia and never once had an issue with people requesting bribes) but apparently, there is a legitimate 180 dinar platform ticket that they collect. I don’t know if you always have to pay this – I know that I didn’t when I traveled by bus between Belgrade and Novi Sad in the past – or perhaps this is something that they charge at night in order to keep the platform secure. There was another guard who was only letting people into the platform area who had these tickets, so it is a legitimate ticket, it is just strange.
We had taken out cash pretty sparingly in the last days of our trip so that we wouldn’t be leaving with excess Serbian dinars, so I was a bit miffed that I had to run to the ATM (not far away, just an extra step) just to take out the equivalent of $4 USD to pay for both of us to access the platform.


It wasn’t a big deal for us as we had arrived neurotically early thanks to my handy-dandy travel anxiety, so we were still sitting at our platform (#11, for the record, though yours may change – just ask the guy manning the desk at the bus station) a few minutes before the bus arrived.
The bus arrived 15 minutes early and started letting people board right away. We left promptly at 4:30 AM so do not be late! Give yourself time at the bus station in case you have trouble finding your platform and getting the platform ticket. We called our taxi at 3:30 AM for our 4:30 AM bus and that gave us ample time to figure out where our bus was leaving from, find out about our weird exit ticket, go to the ATM, go back, take some agonizing platform selfies and for Stephanie to accidentally break a souvenir bottle of Serbian bermet in the parking lot, #RIP.

On Board the Belgrade to Sofia Bus
Florentia Bus is the creme de la creme of Balkan Buses. For one – and this is important for all my fellow small bladdered ladies out there – there is a bathroom on board. It is quite clean, although you should bring your own toilet paper as I didn’t find TP on the bus either time I took it.
The bus has wide, roomy seats with plenty of leg room and USB outlets in case you need to charge your phone on board, which as any frequent bus traveler will be able to tell you is an utter delight. However, there is only one electric plug outlet that I could find (located by the toilet), so better to just charge things by USB. On both buses between Sofia and Belgrade, the bus was about half full, so neither of us had to sit next to anyone on either trip. This is especially great if you are traveling by night as you can try to contort yourself into weirder positions in order to sleep overnight!


Crossing the Serbia – Bulgaria Border
The good thing about traveling between Belgrade and Sofia is that the border crossing occurs late in the trip, with about 1 hour left until Sofia. That means that if you are able to fall asleep on the bus, you will get a decent amount of sleep before you have to wake up for the border, and that the border crossing happens during daylight – always a plus.
We arrived at the Serbian side of the border around 8:30 AM Serbian time / 9:30 AM Bulgarian time. It took about 15 minutes to cross the Serbian border, getting stamped out of the country quite easily. We exited the bus and then walked by the window where the woman took a break from stamping passengers in private cars to stamp us all through.
After everywhere was stamped out, we got back on the bus and drove for a few hundred meters to the Bulgarian border, where we got out again and went through the border control inside a small passport control building.

As I was entering the country, I was asked where I was going (Sofia) and how long I was planning to stay in Bulgaria. I told them my intended exit date and that was sufficient for them. I suspect they only asked me because I had been in Bulgaria for about 80 of the last 180 days, making me close to running out of days on my Bulgarian tourist visa.
Arriving in Sofia
As with our previous experience with Florentia Bus, we arrived early to our destination. Although our arrival time was slated for noon, we actually arrived around 11:20 AM.
We arrived at Serdika Bus Station, which is a makeshift “international terminal” located in between Sofia’s train station and Sofia’s domestic bus station. It looks like this as you pull into it:

When you arrive, you will likely want to take a taxi to your destination in Sofia. We have a comprehensive Sofia taxi guide to help you avoid being scammed, but here is the relevant information that you might need below.
There are scam taxis operating in the vicinity around the bus station, but there is an official OK Supertrans taxi stand at the domestic bus station which is located in the blue-windowed building on the right if you are facing the train station. It is about a 100 meter walk from the international bus station (Serdika).
Do not take a taxi from the international bus station (Serdika) where you are departing from or go with someone if they ask you if you need a taxi; it is likely a scam. Instead, walk to the front of the domestic station and look for this sign.

Before you get into a taxi, double check that the phone number on the taxi matches the sign. It should say 9732121. A lot of fake taxis use the OK image but have a variant on “Supertrans” written in Cyrillic below. However, what they cannot copy is the phone number, and that is more easy for foreigners to recognize if they don’t understand the Cyrillic alphabet. In case you don’t know it yet – we’ve included a handy Cyrillic guide below (it’s for Serbian, but it’ll work in Bulgaria as well, as only a few letters are different).
It cost me 3.50 leva (I rounded up to 4) to go from the bus station to my destination in Oborishte, the northern part of central Sofia. Expect to pay for 4-6 leva for a destination in the center and around 10 leva for a destination slightly outside the center, like Lozonets or Lyulin. OK Taxi theoretically takes credit cards, but I have never used one. I would ask before entering the taxi if using a card is OK (ha). “Platete s karta, molya?” is roughly how you ask to use a credit card in Bulgarian (but fair warning, my Bulgarian language skills may get you laughed at). There are ATMs at the bus station so I would recommend just taking out cash, or you can also exchange money at the bus station as well but you will not get the best rate.
How to Get From Belgrade to Sofia by Train
Theoretically, it is possible to get to Sofia from Belgrade by train, although I do not recommend it unless you are a huge train fan as the bus is much faster.
According to the train blogger Man in Seat 61, there is a direct train in the summer only, which in 2018 was from June 15 to September 17. Here is the timetable for the direct summer train in 2018, which is now invalid, but it will give you an idea for the summer 2019 schedules. Despite being a direct train, it still takes about 11 hours.
Out of season, the train is even more of a nightmare, with 2 transfers and taking way longer than the bus. According to this timetable, the train leaves Belgrade at 6:40 AM and doesn’t arrive in Sofia until 6:50 PM. We recommend traveling by bus unless you have a serious train thing.
How to Get From Belgrade to Sofia by Plane
If you have a wad of cash burning a hole in your pocket, you could fly between Belgrade and Sofia. There is a daily departure between the two cities with Air Serbia, but prices are not cheap – when we looked, it was about $100 each way. We don’t recommend this unless you have a serious bus-phobia or you have more money than time. However, considering that you need to arrive at the airport early and physically get to and from the airport, the bus almost ends up taking about the same amount of time.
Besides, Balkan buses are a cultural experience.

Where to Stay in Sofia
In case you need your Sofia accommodations sorted… here are our suggestions, from two locals – these are the tips we always send our friends!
Budget: For a hostel, we always recommend Hostel Mostel. I have never stayed at the Sofia location but several of my friends have and have always spoken highly of it. I stayed at the one in Veliko Tarnovo and it was excellent. Perks include a free vegetarian dinner in addition to breakfast included in your stay! Check rates and availability here. If you are traveling in peak season, be sure to book online, as Hostel Mostel is popular and tends to get booked up.
Mid-range: For a trendy new boutique hotel that is shockingly affordable, we recommend R34 Boutique Hotel. The location is fantastic, near the Ivan Vazov National Theater in central Sofia. It has gorgeous, loft-inspired details like exposed brick, giant windows, and streamlined but modern décor. It’s a great bargain, too – check rates, reviews, photos, and availability here.
Luxury: As far as we see it, there’s only one option for the best hotel in town: Sense Hotel. We go to their upscale, beautiful rooftop bar all the time when we have guests in town – it has one of the best views in the entire city and they make fantastic cocktails. With beautiful views over Alexander Nevsky, Sofia’s most iconic landmark, the hotel couldn’t be in a better location. Sense Hotel also boasts a state-of-the-art fitness center, an art gallery in the lobby, an excellent spa with luxe treatments, and an indoor pool. It’s truly the best choice in town. Check rates, reviews, photos, and availability here.
Where to Stay in Belgrade
We’ve been to Belgrade several times and know this city well. We’ve done our research and these are our top picks for Belgrade accommodations!
Budget: If you want a cozy feeling hostel, Hostel Home Sweet Home in the Savamala neighborhood of Belgrade is a fantastic choice. Its central location close to Knez Mihailova Street and other Belgrade must-sees makes staying here ultra-convenient. It’s sunny and open, with options for dorm rooms as well as affordable single and double rooms for travelers who want a little more privacy without paying a fortune. It’s one of the best-rated options in town, so we recommend you check out availability and book in advance here.
Mid-Range: There are so many great options in this price-range — Belgrade really excels at providing great value when it comes to accommodations in this price tier. One fun option is a floating hotel on the confluence of the Sava and Danube Rivers, San Art Floating Hostel & Apartments. While it’s located in Novi Beograd and therefore a little out of the action, I love the floating deck where you can have sunset drinks, and I like the that the décor is a little bit nostalgic, with details like rotary phones and old radios. You can check it out here.
Luxury: We’d be remiss if we didn’t suggest the classic luxury option in Belgrade, Hotel Moskva – one of our favorite buildings in the city and a classic haunt of famous politicians, musicians, actors, and other celebrities who pass through Belgrade. It’s also surprisingly affordable for its caliber! With a renowned spa, delicious restaurant (don’t miss the moskva schnit cake – we love it!), and beautifully designed rooms, it’s one of our favorite places in Belgrade and the location is unbeatable. However, it’s almost always sold out, so be sure to check availability and book well in advance and hope you get lucky!
Finally, Don’t Go without Travel Insurance!
Make sure you always travel to Serbia and Bulgaria with a valid travel insurance policy. While the countries are safe, accidents can happen anywhere. If you experience an accident or theft, travel insurance will help you recover your costs and enjoy the rest of your trip.
For travel insurance, I use World Nomads. I’ve been a happy customer of theirs for almost three years, and I’ve never had an issue when making a claim. I’m happy to refer them to anyone I meet.
Was this guide on getting from Belgrade to Sofia by night bus helpful? Let us know in the comments!

Originally from California, Allison has been living in Bulgaria for the last two years and is obsessed with traveling around the Balkans. She has been published in National Geographic, CNN Arabic, Matador Network, and the Huffington Post. She loves befriending dogs, drinking coffee, geeking out about wine, and cooking food from around the world.
Hello Stephanie and Allison! I’m from Santiago Chile and I’m traveling around Europe with my dad. Looking for tips about Sofia I found your blog, just want to thank you for this amazing information and tips, we actually took the 4:30 am bus from Belgrade to Sofia and thanks to all your tips everything was much easier for us. Now we sre in Sofia and looking forward to explore the city. Keep your good work up! Your blog is great.
So glad to hear it! Enjoy Sofia. I love walking around the city on Valentine’s day and seeing everyone carrying big bunches of flowers to take home to their loved ones. Thank you for your kind words!
Hi S and A, thank you for your very informative blog. Helps alot :😄
You’re welcome! Enjoy your trip.
hey,
I am planning my next trip and I can really use most of the details you provided.
Thanks a lot 🙂
Great! Enjoy your trip!
I’ve found one more option to go by bus between Belgrade and Sofia, Bulgarian company Karat-S (https://www.karat-s.co)m
Thank you! That’s a good company, I have used them for other trips.