
2
Airlines
7×
Per week
$373
From (live)
10.5h
Nonstop
Johannesburg (JNB) → Sao Paulo (GRU)
Johannesburg
O.R. Tambo International
DISTANCE
8 034 km
Sao Paulo
Guarulhos International
Flight time is an estimate: great-circle distance with ~8% routing adjustment and ~45 min ground operations. Actual block time depends on the carrier, winds, and specific service (check the airline schedule).
Fare trend — last 4weeks
↔ stableLowest one-way fare from weekly Travelpayouts snapshots. See methodology for how we collect this.
When are fares cheapest?
Cheapest one-way fare actually found for each departure month — click a month to search.
Cheapest month to fly Johannesburg to Sao Paulo: November 2026, from $371 one-way.Based on 9 months of tracked fares · updated 16 Aug 2026
Compare carriers on this route
🇨🇱LATAM Airlines
LA
- Frequency
- 7× / week
- Baggage
- LCC (paid) +15
- Migrant program
- —
🇿🇦South African Airways
SA
- Frequency
- 7× / week
- Baggage
- LCC (paid) +5
- Migrant program
- —
Flights Johannesburg -> Sao Paulo (JNB-GRU) — USD Fares, Airlines, Frequency
7 scheduled departures a week link Johannesburg (JNB) in South Africa with Sao Paulo (GRU) — roughly one a day — flown by 2 catalogued carriers at a scheduled block time near 10.5 hours. Our catalogue scores corridor demand 7/10 and files it as an intra-Africa + Gulf hub transit corridor.
Flight JNB -> GRU is operated by LATAM Airlines, South African Airways (~7 flights per week, ~10.5h block time). This is an intra-Africa + Gulf hub transit corridor, with typical economy USD fares in the $500-1,500 band. Intra-Africa and Gulf-hub transit fares move week-to-week; 4-8 weeks is the typical sweet spot.
Great-circle distance Johannesburg–Sao Paulo is about 7,439 km, computed from the stored coordinates of JNB (-26.13, 28.24) and GRU (-23.44, -46.47). What the figure fixes is the sector profile — 7,439 km against a scheduled 10.5-hour block time — and the fuel-and-crew economics behind the fare floor. It does not fix a compensation amount. No fixed-tariff compensation scheme reaches JNB–GRU. EU261 and UK261 do band by distance, but they only cover flights departing an EU/EEA or UK airport — plus arrivals there on a bloc-licensed carrier — and neither endpoint here is one, whoever operates the flight. The Montreal Convention 1999 is what applies, and it pays provable loss, not a tariff.
Airlines on this route
2 carriers operate JNB–GRU: LATAM Airlines (LA) and South African Airways (SA). Our carrier table records checked-baggage baselines of 23 kg; South African Airways sits in Star Alliance, with no alliance recorded for LA. That mix decides three things — the fare floor, whether your bag is through-checked on a connection, and which delay regulation covers you.
| Carrier | Baggage baseline | Alliance |
|---|---|---|
| LATAM Airlines (LA) | 23 kg | - |
| South African Airways (SA) | 23 kg | Star Alliance |
One column is blank rather than negative. Our carrier file carries a row for LATAM Airlines but no alliance value, which means unrecorded, not unaligned — this page therefore says nothing about its alliance membership either way. The practical question a connection turns on is narrower anyway: whether the two airlines on your itinerary interline, and whether both sectors sit on one ticket. Both are answerable at the booking screen, and neither depends on an alliance badge.
USD fares — JNB-GRU
$357 is the most recent weekly reading in our fare log for JNB–GRU, taken in 2026-W25, across 2 readings that range $357 to $359. The point-in-time fare cache holds no entry for this corridor, so the weekly log is the observed evidence here.
Typical economy fares on JNB-GRU sit in the $500-1,500 range. Live cached fares from Travelpayouts appear in the panel below; fare-month seasonality follows.
Book 4-8 weeks ahead. Fares rise around the December holidays; mid-week departures are usually the cheapest. That window is cluster guidance for an intra-Africa + Gulf hub transit corridor rather than a rule for this single pairing; on a corridor with 7 weekly departures, the practical constraint is often seat availability on the days you can actually travel, not the headline fare.
One thing our fare data cannot tell you: whether the quote includes a checked bag. The cache stores a price and a carrier, not a fare family. On JNB–GRU that matters most where a low-cost carrier or a basic-economy bucket is in the mix, because the cheapest screen number and the cheapest all-in number are then two different itineraries. Compare after adding the bag you will actually carry.
Entry rules at Sao Paulo (GRU)
1 entry route applies to most African passports for Brazil: Visa-free for SADC (South Africa, Botswana, Namibia) and Nigeria up to 90 days. Fee Free for visa-exempt; maximum stay 90 days within any 180-day rolling window. A transit stop can need its own visa even when you never leave the terminal.
| Entry type | Fee | Maximum stay | Official source |
|---|---|---|---|
| Visa-free for SADC (South Africa, Botswana, Namibia) and Nigeria up to 90 days | Free for visa-exempt | 90 days within any 180-day rolling window | Brazil |
Worth knowing before you book: Yellow-fever vaccination certificate required for travellers arriving from yellow-fever endemic African countries.
Read the row above against the right passport. Our visa file is compiled on a South African (ZA) passport as its reference, and this site covers the whole continent — an ECOWAS, EAC or Maghreb passport can face a different fee, a different processing route or no eligibility at all for the same destination. Verified 2026-05-18, next review 2026-08-18; rules change between reviews, so the linked government portal is the authority, not this table.
Checked baggage and uplift on JNB–GRU — and what is not covered
23 kg is the checked-baggage baseline our carrier table records for the 2 airlines on JNB–GRU, with a recorded diaspora uplift of up to +15 kg on LATAM Airlines. Baselines are economy figures and fare-family dependent. The allowance printed on your issued ticket overrides any table, this one included.
The baseline is the headline, the fare family is the contract. On JNB–GRU the same carrier will sell you a fare beneath its own advertised allowance, and those stripped buckets are exactly the ones that set record-low cached prices. Whatever a table says — this one included — the allowance on your issued itinerary is the number that will be enforced at the counter.
Where our table records a migrant or diaspora uplift — +15 kg on LATAM Airlines and +5 kg on South African Airways — three exclusions usually bite. The uplift attaches to nominated corridors rather than the whole network; it rarely survives onto a codeshare or interline segment operated and ticketed by a different airline; and the deepest-discount fare buckets are commonly carved out. None of that makes the uplift fictional, but it does mean it has to be confirmed against your booking class, in writing, before you pack to it.
Search live fares
7 weekly departures across 2 carriers mean a live JNB–GRU search returns several price points for the same day; the most recent weekly reading in our fare log was $357. Scheduled nonstop block time is 10.5 hours, so any result far above that is connecting whatever the screen says.
Search JNB -> GRU on Aviasales ->
Three checks make a live JNB–GRU result comparable. Fix the passenger count and cabin first, because a per-passenger fare and a party total look identical on a results page. Then read the elapsed time next to the price — a one-stop itinerary and the 10.5-hour nonstop are different products at the same number. Then check whether the fare carries the bag you are actually taking.
Flexible dates are the highest-leverage setting on this corridor. Our own cache shows month-to-month movement on JNB–GRU that dwarfs the difference between booking gates, so one search across a whole month tells you more than five searches on a single date. Where the dates cannot move — a pilgrimage window, a school term, a contract start — book earlier instead of searching harder.
About Sao Paulo
2 catalogued corridors in this site’s data reach Sao Paulo (GRU), Guarulhos International, ICAO SBGR, from 2 catalogued origins and 3 carriers in total. That count is this site’s coverage of Sao Paulo, not the airport’s published schedule. Each of those corridors has its own guide with carriers, weekly frequency, scheduled block time and whatever the fare cache holds.
Sao Paulo, Brazil — destination on the intra-Africa + Gulf hub transit corridor. Destination currency: USD (we quote in USD throughout this guide).
Beyond JNB, our catalogue reaches Sao Paulo from 1 other origin: Luanda (LAD). That matters when the JNB–GRU fare is unattractive: on a continent where positioning flights are cheap, flying out of a different gateway is a real option, and each of those corridors has its own guide, carriers and cached fare floor on this site.
Sao Paulo is a based hub for LATAM Airlines and G3. A hub airport behaves differently from an outstation: connecting banks are built around it, spare aircraft and crew sit there, and a disruption is far more likely to be recovered the same day. It also means the hub carrier usually sets the price on routes into GRU, and competitors price against it rather than the other way round.
FAQ
Which airlines fly Johannesburg to Sao Paulo? Direct JNB-GRU flights are operated by LATAM Airlines, South African Airways. Compare baggage baseline and alliance in the carrier table above.
How long is the JNB-GRU flight and how often does it run? Block time is about 10.5 hours. The JNB-GRU route runs roughly 7 flights per week across all carriers.
How much does a JNB-GRU flight cost and when is it cheapest? Typical economy fares sit in the $500-1,500 USD band. Intra-Africa and Gulf-hub transit fares move week-to-week; 4-8 weeks is the typical sweet spot.
What is the checked baggage allowance on JNB-GRU? It varies by carrier and fare class — see the baggage-baseline column in the carrier table above. Full-service carriers usually include 23-30 kg, while low-cost carriers sell it as an add-on. Confirm on the airline’s site before booking.
What currency is used in Sao Paulo? Sao Paulo uses USD. Fares in this guide are quoted in USD; budget on-the-ground spending in USD.
Related routes and reading
2 related pages follow, each chosen because it shares an endpoint, a carrier or an audience cluster with JNB–GRU — not because of a keyword match. The annotations say what each one adds, so the ones that do not apply to your trip can be skipped.
- Johannesburg airport (JNB) — O.R. Tambo International, South Africa: 39 catalogued departure corridors and 6 arrival corridors.
- Sao Paulo airport (GRU) — Guarulhos International, Brazil: 0 catalogued departure corridors and 2 arrival corridors.
These links come out of the data rather than an editorial wish-list. Two pages are connected when they share an airport, a carrier, a destination country or an audience cluster, which means the list is stable as the catalogue grows and does not drift toward whatever term happens to rank. Skip what does not match your trip.
Where this page covers one corridor, the linked airport guides cover the field: the full catalogued route list, based hub carriers, alliance mix and the compensation regime that applies there. Both JNB and GRU are linked deliberately, because departure airport and operating carrier — not destination — decide which rules cover a delay.
Where to stay · Sao Paulo
Hotels in Sao Paulo — USD budget
Budget
Guesthouse & 2-3★
$25–50 / night
Mid
Comfort 3-4★
$50–120 / night
Luxury
5★ & resort
$120+ / night
Hotellook compares 70+ booking sites including Booking.com, Agoda, Trip.com — booking earns us a small commission at no extra cost.
All hotels in Sao Paulo