Cheap flights from Johannesburg to Oporto

Know your dates, get live prices in seconds:

From
To
Depart
Return
Any month
Compare vs Cheapflights |
From
To
Leaving on
Depart
Time
Anytime
From
To
Leaving on
Depart
Time
Anytime
From
To
Leaving on
Depart
Time
Anytime
From
To
Leaving on
Depart
Time
Anytime
From
To
Leaving on
Depart
Time
Anytime
From
To
Leaving on
Depart
Time
Anytime

We work with more than 300 partners to bring you better travel deals

The best prices from Johannesburg to Oporto are usually found in October or February, booked 60 days in advance, depart on a Wednesday or Monday and return on a Wednesday

Return
Economy
Sun 7/12
Sun 7/19
From
#smartAirportField( "origin${leg}", $options['origin'], $options['originCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "origin$leg", "origincode$leg" ) #nearbyAirportField("nearbyOriginCheck$leg", $nearbyO, false "$!options['origin']")
To
#smartAirportField( "destination${leg}", $options['destination'], $options['destinationCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "destination${leg}", "destinationcode${leg}" ) #nearbyAirportField("nearbyDestinationCheck${leg}", $nearbyD, false, "$!options['destination']")
Leaving on
Sun 7/12
Time
Anytime
From
#smartAirportField( "origin${leg}", $options['origin'], $options['originCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "origin$leg", "origincode$leg" ) #nearbyAirportField("nearbyOriginCheck$leg", $nearbyO, false "$!options['origin']")
To
#smartAirportField( "destination${leg}", $options['destination'], $options['destinationCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "destination${leg}", "destinationcode${leg}" ) #nearbyAirportField("nearbyDestinationCheck${leg}", $nearbyD, false, "$!options['destination']")
Leaving on
Depart
Time
Anytime
#removeLegButton($self.id("removeLeg$leg"))
From
#smartAirportField( "origin${leg}", $options['origin'], $options['originCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "origin$leg", "origincode$leg" ) #nearbyAirportField("nearbyOriginCheck$leg", $nearbyO, false "$!options['origin']")
To
#smartAirportField( "destination${leg}", $options['destination'], $options['destinationCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "destination${leg}", "destinationcode${leg}" ) #nearbyAirportField("nearbyDestinationCheck${leg}", $nearbyD, false, "$!options['destination']")
Leaving on
Depart
Time
Anytime
#removeLegButton($self.id("removeLeg$leg"))
From
#smartAirportField( "origin${leg}", $options['origin'], $options['originCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "origin$leg", "origincode$leg" ) #nearbyAirportField("nearbyOriginCheck$leg", $nearbyO, false "$!options['origin']")
To
#smartAirportField( "destination${leg}", $options['destination'], $options['destinationCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "destination${leg}", "destinationcode${leg}" ) #nearbyAirportField("nearbyDestinationCheck${leg}", $nearbyD, false, "$!options['destination']")
Leaving on
Depart
Time
Anytime
#removeLegButton($self.id("removeLeg$leg"))
From
#smartAirportField( "origin${leg}", $options['origin'], $options['originCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "origin$leg", "origincode$leg" ) #nearbyAirportField("nearbyOriginCheck$leg", $nearbyO, false "$!options['origin']")
To
#smartAirportField( "destination${leg}", $options['destination'], $options['destinationCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "destination${leg}", "destinationcode${leg}" ) #nearbyAirportField("nearbyDestinationCheck${leg}", $nearbyD, false, "$!options['destination']")
Leaving on
Depart
Time
Anytime
#removeLegButton($self.id("removeLeg$leg"))
From
#smartAirportField( "origin${leg}", $options['origin'], $options['originCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "origin$leg", "origincode$leg" ) #nearbyAirportField("nearbyOriginCheck$leg", $nearbyO, false "$!options['origin']")
To
#smartAirportField( "destination${leg}", $options['destination'], $options['destinationCode'], "#string('FROM_TO_INPUT_PLACEHOLDER_FFD')", "destination${leg}", "destinationcode${leg}" ) #nearbyAirportField("nearbyDestinationCheck${leg}", $nearbyD, false, "$!options['destination']")
Leaving on
Depart
Time
Anytime
#removeLegButton($self.id("removeLeg$leg"))
#infantInLapWarning('multiRightOfTravelers')

How to find the cheapest flight from
Johannesburg (JNB) to Oporto (OPO)

JNB - OPO
Price
R432 - R753
OPO
Temperature
14 - 25 °C
OPO
Rainfall
17 - 160 mm
Popular in December High demand for flights, 20% potential price rise
Cheapest in October Best time to find cheap flights, 28% potential price drop
Average price R10 597 Average for round-trip flights in July 2020
Round-trip from R432 From Johannesburg to Oporto
Flight route prices based on searches on Cheapflights within the last 3 days, monthly prices based on aggregated historical data.
What is the cheapest day to fly return from Johannesburg to Oporto?

Users have found that leaving on a Tuesday can be a cost-effective option. It’s possible to save up to 41% on your flight compared to booking on days when demand is much higher.

How far in advance should I book a flight from Johannesburg to Oporto?

Users have found that booking a flight from Johannesburg to Oporto at least 61 days early can save you up to 21% on average compared to booking a flight this week. If booking 61 days before your flight isn’t an option for you, users have found flights from Johannesburg to Oporto for as little as R208 512 when booking for a departure date within the next two weeks. You can also check prices now. Some users have found airline tickets as low as R222 066 for flights departing within the next 3 days.

What is the cheapest month to fly from Johannesburg to Oporto?

Due to multiple factors, expect to potentially pay more when booking in December. For low rates, October can be a great choice for travel to Oporto. Flights to Oporto from Johannesburg in October are about R10 185 on average during October, but can be found for as low as R5 961.

Related info for your journey

Useful info, stats and facts about Johannesburg to Oporto flights.

Flight FAQs

From Johannesburg to Oporto

How popular is this flight route?

Within the past month, 3 782 users have taken a look at flights from Johannesburg OR Tambo to Porto.

Does it rain more in Johannesburg or Oporto?

The rainfall in Johannesburg is generally more than the rainfall in Oporto. This will continue over the next 1 days.

Is Johannesburg weather warmer or cooler than Oporto?

Temperatures around the 26 °Cs can be experienced in January. The weather in Oporto is colder than in Johannesburg. Plan for potential changes in flight availability as peak weather approaches in this location.

Related searches

Flights to Oporto from Johannesburg
Flights to Johannesburg Flights to Oporto Flights from Johannesburg

Alternative routes for Johannesburg to Oporto

Destination information for Oporto

Things to know before you go. Useful info for your trip from Johannesburg to Oporto
Today's exchange rate
R1 = €0,06
Average temperature for July in Oporto
25.0 °C
Avg rainfall for July in Oporto
17.0 mm

Airports servicing Johannesburg

Airports servicing Porto

  • Return
  • One-way
  • Economy
  • Premium Economy
  • Business
  • First