There are 6 ways to get from Johannesburg to Mbabane by bus, car, car train, shuttle 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, drive  •  7 h 16 min

  1. Take the bus from Johannesburg to Piet Retief
  2. Drive from Piet Retief to Mbabane

$27 - $37

Cheapest option

Car train, drive  •  13 h 26 min

  1. Take the car train from Johannesburg to Kaapmuiden
  2. Drive from Kaapmuiden to Mbabane

$22 - $33

4 alternative options

Car train, shuttle  •  13 h 31 min

  1. Take the car train from Johannesburg to Nelspruit
  2. Take a shuttle bus from Sonpark to Mbabane

$36 - $39

Drive  •  4 h 27 min

  1. Drive from Johannesburg to Mbabane 226.2 miles

$35 - $55

Fly, shuttle  •  6 h 24 min

  1. Fly from Johannesburg (JNB) to Nelspruit (MQP) JNB - MQP
  2. Take a shuttle bus from Kruger Mpumalanga International Airport to Mbabane

$134 - $315

Shuttle  •  5 h 37 min

  1. Take a shuttle bus from Sandton to Mbabane

$48 - $88

Questions & Answers

The distance between Johannesburg and Mbabane is 308 km. The road distance is 361.8 km.

Get driving directions

The best way to get from Johannesburg to Mbabane without a car is to car train and shuttle which takes 13 h 31 min and costs .

More details

It takes approximately 7 h 16 min to get from Johannesburg to Mbabane, including transfers.

More details

The quickest flight from Johannesburg Airport to Nelspruit Airport is the direct flight which takes 45 min.

Search flights

Yes, the driving distance between Johannesburg to Mbabane is 362 km. It takes approximately 4 h 27 min to drive from Johannesburg to Mbabane.

Get driving directions

South African Airways offers flights from Johannesburg Airport to Nelspruit Airport.

Search flights

There are 39+ hotels available in Mbabane. Prices start at $50 USD per night.

More details

Map of how to get from Johannesburg to Mbabane.
Launch map view
  • Distance: 192.7 miles
  • Duration: 7 h 16 min

What companies run services between Johannesburg, South Africa and Mbabane, Swaziland?

There is no direct connection from Johannesburg to Mbabane. However, you can take the bus to Piet Retief then take the drive to Mbabane. Alternatively, you can take the car train to Kaapmuiden then take the drive to Mbabane.

Airlines
South African Airways
Website
flysaa.com
Flights from Johannesburg to Nelspruit
Ave. Duration
48 min
When
Every day
Estimated price
$95 - $420
Train operators
Shosholoza Meyl
Phone
086 000 8888
Website
shosholozameyl.co.za
Car train from Johannesburg to Kaapmuiden
Ave. Duration
10 h 55 min
Frequency
Once a week
Estimated price
$8 - $13
Schedules at
shosholozameyl.co.za
2nd Class
$8 - $13
1st Class
$15 - $20
Car train from Johannesburg to Nelspruit
Ave. Duration
9 h 52 min
Frequency
Once a week
Estimated price
$8 - $12
Schedules at
shosholozameyl.co.za
2nd Class
$8 - $12
1st Class
$14 - $19
Bus operators
Greyhound ZA
Phone
+27 11 611 8000
Email
enquiries@greyhound.co.za
Website
greyhound.co.za
Bus from Johannesburg to Piet Retief
Ave. Duration
5 h 15 min
Frequency
Twice daily
Estimated price
$17 - $24
Schedules at
greyhound.co.za
TransMagnific
Website
goswaziland.co.sz
Shuttle from Sonpark to Mbabane
Ave. Duration
2 h 24 min
Frequency
Twice daily
Estimated price
$28
Schedules at
goswaziland.co.sz
Shuttle from Kruger Mpumalanga International Airport to Mbabane
Ave. Duration
2 h 59 min
Frequency
Twice daily
Estimated price
$28
Schedules at
goswaziland.co.sz
Sky World
Phone
(+268) 7664 0001
Email
info@skyworld.co.sz
Website
skyworld.co.sz
Shuttle from Sandton to Mbabane
Ave. Duration
4 h 30 min
Frequency
Twice daily
Estimated price
$40 - $80
Schedules at
skyworld.co.sz

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 What documents do I need to cross Niagara Falls?, How to get from JFK to New York City and 10 amazing places to get away from it all in Australia - to help you get the most out of your next trip.