Direct (nonstop) flights from Johannesburg to Cape Town

7 airlines fly nonstop from Johannesburg International (JNB) to Cape Town International (CPT). It's 790 miles (1,271 km), about 2h 15m in the air. Operated by Airlink, CemAir, Safair and others.

JNB
Johannesburg International
🇿🇦 Johannesburg, South Africa
CPT
Cape Town International
🇿🇦 Cape Town, South Africa
Flight Time
2h 15m
Distance
790 mi
1,271 km
CO₂/pax
146 kg
−25 kg vs. layover
Airlines
7
Airlink +6
Time Diff
Same timezone
Operated by Airlink Airlink CemAir CemAir Safair Safair LIFT LIFT South African Airways South African Airways Singapore Airlines Singapore Airlines +1 more

Route data last updated: May 26, 2026

Airlines with non-stop flights

Airlink 4Z Airlink
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi
CemAir 5Z CemAir
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi
Safair FA Safair
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi
LIFT GE LIFT
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi
South African Airways SA South African Airways
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi
Singapore Airlines SQ Singapore Airlines
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi
FlexFlight W2 FlexFlight
Route
JNB → CPT
Flight Time
2h 15m
Distance
790 mi

Alternative Routes

Other ways to fly from Johannesburg to Cape Town with one stop · direct emits 146 kg CO₂ per passenger

JNB KIM (Kimberley) CPT
Leg 1: 1h 5m (281 mi) Leg 2: 1h 35m (509 mi) Total: ~2h 40m 🍃 171 kg CO₂ (+17% vs. direct)
Leg 1
JNB → KIM
1h 5m · 281 mi
View JNB to KIM flights →
Leg 2
KIM → CPT
1h 35m · 509 mi
View KIM to CPT flights →
JNB BFN (Bloemfontein) CPT
Leg 1: 1h 5m (235 mi) Leg 2: 1h 45m (564 mi) Total: ~2h 50m 🍃 173 kg CO₂ (+18% vs. direct)
Leg 1
JNB → BFN
1h 5m · 235 mi
View JNB to BFN flights →
Leg 2
BFN → CPT
1h 45m · 564 mi
View BFN to CPT flights →
JNB UTN (Upington) CPT
Leg 1: 1h 35m (457 mi) Leg 2: 1h 15m (414 mi) Total: ~2h 50m 🍃 187 kg CO₂ (+28% vs. direct)
Leg 1
JNB → UTN
1h 35m · 457 mi
View JNB to UTN flights →
Leg 2
UTN → CPT
1h 15m · 414 mi
View UTN to CPT flights →
JNB GBE (Gaborone) CPT
Leg 1: 55m (181 mi) Leg 2: 2h (784 mi) Total: ~2h 55m 🍃 204 kg CO₂ (+40% vs. direct)
Leg 1
JNB → GBE
55m · 181 mi
View JNB to GBE flights →
Leg 2
GBE → CPT
2h · 784 mi
View GBE to CPT flights →
JNB GRJ (George) CPT
Leg 1: 2h (645 mi) Leg 2: 55m (217 mi) Total: ~2h 55m 🍃 184 kg CO₂ (+26% vs. direct)
Leg 1
JNB → GRJ
2h · 645 mi
View JNB to GRJ flights →
Leg 2
GRJ → CPT
55m · 217 mi
View GRJ to CPT flights →

Frequently Asked Questions

How long is the direct flight from Johannesburg to Cape Town?

A nonstop flight from Johannesburg (JNB) to Cape Town (CPT) takes approximately 2 hours and 15 minutes. The distance is 790 miles (1,271 km).

Which airlines fly nonstop from Johannesburg to Cape Town?

7 airlines: Airlink, CemAir, Safair, LIFT, South African Airways, Singapore Airlines, FlexFlight.

Is there a nonstop flight from Johannesburg to Cape Town?

Yes. 7 airlines: Airlink, CemAir, Safair, LIFT, South African Airways, Singapore Airlines, FlexFlight.

How far is Johannesburg from Cape Town?

The flight distance from Johannesburg to Cape Town is 790 miles (1,271 km), measured as the great-circle (shortest air) distance. That's roughly the same distance as London to Madrid.

What type of aircraft flies from Johannesburg to Cape Town?

At 2h 15m, this route typically uses narrow-body or mid-range jets — Boeing 737 MAX or Airbus A320neo. Varies by airline.

What is the carbon footprint of a flight from Johannesburg to Cape Town?

Roughly 146 kg CO2 per passenger one-way. That's about the same as driving 730 km.

Is the return flight from Cape Town to Johannesburg also nonstop?

Yes — nonstop flights run both ways. Flight time may differ slightly due to wind patterns.

When is the cheapest time to fly from Johannesburg to Cape Town?

Midweek flights (Tue/Wed) outside holiday peaks are usually cheapest. 3-6 weeks ahead is a good window for this route. Use "Check Prices" above to compare.

How early should I arrive at Johannesburg International for this flight?

1.5-2 hours for domestic. Add more time during holidays or busy travel weekends.