Johannesburg to Cape Town Trip Overview
Distance 1260 km (787.5 miles) | |
Price range US$ 56-US$ 398 | |
Ride Duration Range 2h 10m-1d 2h 30m | |
Earliest Departure 04:05 | |
Latest Departure 19:20 | |
Most Popular Operator |
Find up-to-date information on departure times, schedules, and prices so you can easily compare and book your tickets.
Taking a bus from Johannesburg to Cape Town
Fastest bus: 15h 20m
Cheapest bus: US$ 56

About the ride from Johannesburg to Cape Town
Johannesburg to Cape Town Route Information
The distance between Johannesburg and Cape Town is 788 miles, or approximately 1260 kilometers.
There are 2 ways to get from Johannesburg to Cape Town, including bus,flight.
The earliest departure leaves at 04:05 and has a duration of 2 hours 15 minutes.
The fastest way to travel is by flight, which takes approximately 2 hours 10 minutes.
Johannesburg to Cape Town by bus
- Starting Price: US$ 56
- 90 departures a day, or 630 departures a week
There are 7 travel classes for this journey, including: Mainliner, Luxury, Luxurious Coach, Sleepliner, Express, Luxury Coach and Standard.
Each bus ticket offers an individual seat with basic passenger necessities. Conditions and amenities vary by provider. For more detailed information and availability see all bus options.
Johannesburg to Cape Town by flight
- Starting Price: US$ 183
- 75 departures a day, or 525 departures a week
The only travel class available is Economy.
Each flight ticket offers an individual seat with basic passenger necessities. Conditions and amenities vary by provider. For more detailed information and availability see all flight options.
Companies Operating from Johannesburg to Cape Town
Why travel with Bookaway?
Bookaway.com makes it simple and easy to find, compare, and buy city-to-city tickets via bus, train, ferry, and more. We support over 13 languages and 23 currencies worldwide, and we believe that everyone should easily be able to find and purchase what they are looking for. We don’t just want to help you get where you want to go - we want you to enjoy the ride.







