• Our partners include:

  • RailEurope
  • Deutsche Bahn
  • Trenitalia
  • SNCF
  • Flixbus
  • RENFE
  • Ouibus
  • BlaBlaCar
  • Booking.com
  • Skyscanner

There are 5 ways to get from Sofia to Belgrade by bus, train, car or plane

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2rio's travel planner.

Recommended option

Bus Karat-S  •  5h

  1. Take the bus from Sofia Serdica Bus Station to Belgrad Central Bus Station Varna - Belgrade

$45 - $65

Cheapest option

Train  •  13h 30m

  1. Take the train from Sofia to Dimitrovgrad
  2. Take the train from Dimitrovgrad to Niš
  3. Take the train from Niš to Beograd centar

$12 - $34

3 alternative options

Bus Nis Ekspres  •  7h 30m

  1. Take the bus from Sofia to Niš
  2. Take the bus from Niš to Belgrade

$19 - $43

Drive  •  4h 31m

  1. Drive from Sofia to Belgrade 244.6 miles

$40 - $65

Fly  •  4h 30m

  1. Fly from Sofia (SOF) to Belgrade (BEG) SOF - BEG

$83 - $186

Questions & Answers

The cheapest way to get from Sofia to Belgrade is to train which costs $11 - $35 and takes 13h 30m.

More details

The quickest way to get from Sofia to Belgrade is to fly which costs $80 - $190 and takes 4h 30m.

More details

Yes, there is a direct bus departing from Sofia Serdica Bus Station station and arriving at Belgrad Central Bus Station station. Services depart three times a week, and operate Thursday, Friday and Saturday. The journey takes approximately 5h.

More details

No, there is no direct train from Sofia to Belgrade. However, there are services departing from Sofia and arriving at Beograd centar via Dimitrovgrad and Niš. The journey, including transfers, takes approximately 13h 30m.

More details

The distance between Sofia and Belgrade is 328 km. The road distance is 391.3 km.

Get driving directions

The best way to get from Sofia to Belgrade without a car is to bus which takes 5h and costs $45 - $65.

More details

The bus from Sofia Serdica Bus Station to Belgrad Central Bus Station takes 5h including transfers and departs three times a week.

More details

Sofia to Belgrade bus services, operated by Karat-S, arrive at Sofia Serdica Bus Station.

More details

Sofia to Belgrade train services, operated by Serbian Railways, depart from Sofia station.

More details

The best way to get from Sofia to Belgrade is to bus which takes 5h and costs $45 - $65. Alternatively, you can train, which costs $11 - $35 and takes 13h 30m, you could also fly, which costs $80 - $190 and takes 4h 30m.

Mode details

Map of how to get from Sofia to Belgrade.
Launch map view
  • Distance: 205 miles
  • Duration: 5h

What companies run services between Sofia, Bulgaria and Belgrade, Serbia?

Karat-S operates a bus from Sofia to Belgrade 3 times a week. Tickets cost $45 - $65 and the journey takes 5h. Alternatively, you can take a train from Sofia to Belgrade via Dimitrovgrad and Niš in around 13h 30m.

Airlines
Air Serbia
Website
airserbia.com
Flights from Sofia to Belgrade
Ave. Duration
1h 10m
When
Every day
Estimated price
$130 - $280
Train operators
Serbian Railways
Website
srbvoz.rs
Train from Sofia to Dimitrovgrad
Ave. Duration
3h
Frequency
Once daily
Estimated price
$1 - $5
Schedules at
srbvoz.rs
2nd Class Ticket
$1 - $3
1st Class Ticket
$3 - $5
Train from Dimitrovgrad to Niš
Ave. Duration
3h 19m
Frequency
3 times a day
Estimated price
$3 - $9
Schedules at
srbvoz.rs
2nd Class Ticket
$3 - $5
1st Class Ticket
$5 - $9
Train from Niš to Beograd centar
Ave. Duration
5h 11m
Frequency
5 times a day
Estimated price
$7 - $20
Schedules at
srbvoz.rs
2nd Class Ticket
$7 - $11
1st Class Ticket
$12 - $20
Bus operators
Karat-S
Phone
+359 2 8120810
Email
operations@eurolines.bg
Website
karat-s.com
Bus from Sofia Serdica Bus Station to Belgrad Central Bus Station
Ave. Duration
5h
Frequency
3 times a week
Estimated price
$45 - $65
Website
Karat-S
Matpu
Phone
02 952 50 04
Email
matpu96@abv.bg
Website
matpu.com
Bus from Sofia to Niš
Ave. Duration
3h
Frequency
Twice daily
Estimated price
$10 - $15
Schedules at
matpu.com
Nis Ekspres
Phone
+381 18 255 177
Email
marketing@nis-ekspres.rs
Website
nis-ekspres.rs
Bus from Sofia to Niš
Ave. Duration
4h
Frequency
Twice daily
Estimated price
$7 - $12
Schedules at
nis-ekspres.rs
Book at
onlinetickets.nis-ekspres.rs
Bus from Niš to Belgrade
Ave. Duration
3h 30m
Frequency
5 times a day
Estimated price
$11
Schedules at
nis-ekspres.rs
Book at
onlinetickets.nis-ekspres.rs
BS Tours
Phone
011 761-4693
Email
bstours@verat.net
Website
bstours.rs
Bus from Niš to Belgrade
Ave. Duration
2h 50m
Frequency
Twice daily
Estimated price
$15 - $29
Schedules at
bstours.rs

Want to know more about travelling around the world?

Rome2rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including Best ways to travel around Australia, What are the different types of Renfe trains in Spain? and Why you should take the train in the US - to help you get the most out of your next trip.

More Questions & Answers

The quickest flight from Sofia Airport to Belgrade Airport is the direct flight which takes 1h 10m.

Search flights

Sofia to Belgrade bus services, operated by Karat-S, arrive at Belgrad Central Bus Station.

More details

Belgrade is 1h behind Sofia. It is currently 12:32 AM in Sofia and 11:32 PM in Belgrade.

Sofia to Belgrade train services, operated by Serbian Railways, arrive at Beograd centar station.

More details

Yes, the driving distance between Sofia to Belgrade is 391 km. It takes approximately 4h 31m to drive from Sofia to Belgrade.

Get driving directions

Air Serbia offers flights from Sofia Airport to Belgrade Airport.

Search flights

There are 2785+ hotels available in Belgrade. Prices start at $31 USD per night.

More details

The best way to get from Sofia to Sofia Airport is to line 84 shuttle which takes 34m and costs $1.

More details