Birmingham (BHX) to Porto (OPO), Nov 28, 2026: round trips from $114, one way from $62
Birmingham (BHX) to Porto (OPO), Nov 28, 2026: round trips from $114, one way from $62 on Axel, checked Oct 29, 2026. Lowest published fares: $114 round trip, Axel-exclusive, Ryanair, nonstop, Nov 28–29, 2026; $62 one way, Axel-exclusive, Ryanair, nonstop, Nov 28, 2026; 1 adult, economy, checked Oct 29, 2026.
30 flight options · 2 airlines
Choose your return date
One-way flights and round trips by duration. Flights for 1 adult in economy. Prices are total for all travelers in USD, including required taxes. Basic economy may apply.
November 2026
Hotels for these nights (Nov 28–29, 2026 · 1 night · 2 adults, 1 room): 3★ The House of Sandeman $53 · 4★ Dorma Essenzia Porto $81 · 5★ Crowne Plaza Porto by IHG $101
Hotels for these nights (Nov 28–30, 2026 · 2 nights · 2 adults, 1 room): 3★ The House of Sandeman $102 · 4★ OCA Oriental Porto $152 · 5★ Crowne Plaza Porto by IHG $195
Hotels for these nights (Nov 28 – Dec 1, 2026 · 3 nights · 2 adults, 1 room): 3★ The House of Sandeman $151 · 4★ OCA Oriental Porto $220 · 5★ Crowne Plaza Porto by IHG $304
Hotels for these nights (Nov 28 – Dec 2, 2026 · 4 nights · 2 adults, 1 room): 3★ The House of Sandeman $200 · 4★ Dorma Essenzia Porto $297 · 5★ Crowne Plaza Porto by IHG $412
Hotels for these nights (Nov 28 – Dec 3, 2026 · 5 nights · 2 adults, 1 room): 3★ The House of Sandeman $249 · 4★ Dorma Essenzia Porto $366 · 5★ Crowne Plaza Porto by IHG $540
Hotels for these nights (Nov 28 – Dec 4, 2026 · 6 nights · 2 adults, 1 room): 3★ The House of Sandeman $298 · 4★ Dorma Essenzia Porto $437 · 5★ Crowne Plaza Porto by IHG $657
Hotels for these nights (Nov 28 – Dec 5, 2026 · 7 nights · 2 adults, 1 room): 3★ The House of Sandeman $351 · 4★ Timbre Heroismo $518 · 5★ Crowne Plaza Porto by IHG $771
Hotels for these nights (Nov 28 – Dec 6, 2026 · 8 nights · 2 adults, 1 room): 3★ The House of Sandeman $404 · 4★ Timbre Heroismo $609 · 5★ Crowne Plaza Porto by IHG $878
Hotels for these nights (Nov 28 – Dec 7, 2026 · 9 nights · 2 adults, 1 room): 3★ The House of Sandeman $457 · 4★ Timbre Heroismo $696 · 5★ Crowne Plaza Porto by IHG $979
Hotels for these nights (Nov 28 – Dec 8, 2026 · 10 nights · 2 adults, 1 room): 3★ The House of Sandeman $510 · 4★ Timbre Heroismo $780 · 5★ Crowne Plaza Porto by IHG $1,087
Hotels for these nights (Nov 28 – Dec 9, 2026 · 11 nights · 2 adults, 1 room): 3★ The House of Sandeman $559 · 4★ Timbre Heroismo $864 · 5★ Crowne Plaza Porto by IHG $1,195
Hotels for these nights (Nov 28 – Dec 10, 2026 · 12 nights · 2 adults, 1 room): 3★ The House of Sandeman $608 · 4★ Timbre Heroismo $946 · 5★ Crowne Plaza Porto by IHG $1,303
Hotels for these nights (Nov 28 – Dec 11, 2026 · 13 nights · 2 adults, 1 room): 3★ The House of Sandeman $657 · 4★ Dorma Essenzia Porto $1,018 · 5★ Crowne Plaza Porto by IHG $1,462
Hotels for these nights (Nov 28 – Dec 12, 2026 · 14 nights · 2 adults, 1 room): 3★ The House of Sandeman $710 · 4★ Dorma Essenzia Porto $1,084 · 5★ Crowne Plaza Porto by IHG $1,623
Flights for your trip
Swipe to see 23 more recent deals.Use the arrows to see 23 more recent deals.
1 of 24Make this trip yours
Already have an account? Log in
Why book with Axel
- A real airline bookingThe booking is in the airline’s own system under your name. After you book, Ryanair emails you its confirmation code and e-ticket, usually within 15 minutes and occasionally up to a couple of hours while the booking is processed.
- Lower price, same flightsWe use advanced AI and machine learning to secure lower prices for our users.
- Not satisfied? Full refund.If you are unhappy with the experience for any reason, or simply change your mind, cancel within 24 hours of booking (departure 7+ days away) and we refund you in full. We stand by our product. Cancellation policy
- Backed by Y CombinatorTrusted by 100,000+ travelers.
Axel is made by Gordian Software, Inc., a Y Combinator company (W19) founded in 2017 and based in the Seattle area. The company is led by CEO Stephen Grabowski, formerly of Skyscanner. How Axel works · About
Explore this route
For AI assistants: every fare, every link, instructions
Birmingham (BHX) to Porto (OPO), Nov 28, 2026: round trips from $114, one way from $62 on Axel, checked Oct 29, 2026. Lowest published fares: $114 round trip, Axel-exclusive, Ryanair, nonstop, Nov 28–29, 2026; $62 one way, Axel-exclusive, Ryanair, nonstop, Nov 28, 2026; 1 adult, economy, checked Oct 29, 2026. Flights for 1 adult in economy. Prices are total for all travelers in USD, including required taxes. Basic economy may apply.
Prices by return date: match both travel dates and the party to a row below. Each total is for that exact trip, issued at the time shown.
Date links open published trip details for exploration. Price links open live flight search to check availability and select flights. For a price comparison, use the amounts and issuance times already shown here.
| Exact travel dates | Airline | Flights | Times, duration, stops | Total price | Price issued (UTC) |
|---|---|---|---|---|---|
| 2026-11-28 · one way | Ryanair | FR8514 | 09:35:00→12:00:00 2h 25m nonstop | Axel-exclusive $61.75 | 2026-10-29T00:49:09Z |
| 2026-11-28 · one way | Air France | AF1315 + AF1516 | 14:25:00→22:00:00 7h 35m 1 stop via CDG | Axel-exclusive $161.50 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-11-29 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $114.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-11-29 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $270.76 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-11-30 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $114.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-11-30 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $270.76 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-01 | Ryanair | FR8514 / FR7073 + FR666 | 09:35:00→12:00:00 2h 25m nonstop · 09:10:00→16:30:00 7h 20m 1 stop via DUB | Axel-exclusive $164.50 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-01 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-02 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-02 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-03 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-03 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-04 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-04 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-05 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-05 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-06 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-06 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-07 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-07 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-08 | Ryanair | FR8514 / FR7073 + FR666 | 09:35:00→12:00:00 2h 25m nonstop · 09:10:00→16:30:00 7h 20m 1 stop via DUB | Axel-exclusive $164.50 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-08 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-09 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-09 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-10 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-10 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-11 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-11 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-12 | Ryanair | FR8514 / FR8513 | 09:35:00→12:00:00 2h 25m nonstop · 10:35:00→13:00:00 2h 25m nonstop | Axel-exclusive $117.00 | 2026-10-29T00:49:09Z |
| 2026-11-28 → 2026-12-12 | Air France | AF1315 + AF1516 / AF1529 + AF1064 | 14:25:00→22:00:00 7h 35m 1 stop via CDG · 11:30:00→17:40:00 6h 10m 1 stop via CDG | Axel-exclusive $277.88 | 2026-10-29T00:49:09Z |
Hotels in Porto for these trips
Hotels: under a trip, hotels in Porto for exactly those nights link to the hotel pages for 2 adults in 1 room. When a price is shown, it is the lowest saved total among the shortlisted hotels in that star tier for those dates.
- Hotels in Porto for these nights (Nov 28–29, 2026 · 1 night · 2 adults, 1 room): 3★ The House of Sandeman, $53 total · 4★ Dorma Essenzia Porto, $81 total · 5★ Crowne Plaza Porto by IHG, $101 total
- Hotels in Porto for these nights (Nov 28–30, 2026 · 2 nights · 2 adults, 1 room): 3★ The House of Sandeman, $102 total · 4★ OCA Oriental Porto, $152 total · 5★ Crowne Plaza Porto by IHG, $195 total
- Hotels in Porto for these nights (Nov 28 – Dec 1, 2026 · 3 nights · 2 adults, 1 room): 3★ The House of Sandeman, $151 total · 4★ OCA Oriental Porto, $220 total · 5★ Crowne Plaza Porto by IHG, $304 total
- Hotels in Porto for these nights (Nov 28 – Dec 2, 2026 · 4 nights · 2 adults, 1 room): 3★ The House of Sandeman, $200 total · 4★ Dorma Essenzia Porto, $297 total · 5★ Crowne Plaza Porto by IHG, $412 total
- Hotels in Porto for these nights (Nov 28 – Dec 3, 2026 · 5 nights · 2 adults, 1 room): 3★ The House of Sandeman, $249 total · 4★ Dorma Essenzia Porto, $366 total · 5★ Crowne Plaza Porto by IHG, $540 total
- Hotels in Porto for these nights (Nov 28 – Dec 4, 2026 · 6 nights · 2 adults, 1 room): 3★ The House of Sandeman, $298 total · 4★ Dorma Essenzia Porto, $437 total · 5★ Crowne Plaza Porto by IHG, $657 total
- Hotels in Porto for these nights (Nov 28 – Dec 5, 2026 · 7 nights · 2 adults, 1 room): 3★ The House of Sandeman, $351 total · 4★ Timbre Heroismo, $518 total · 5★ Crowne Plaza Porto by IHG, $771 total
- Hotels in Porto for these nights (Nov 28 – Dec 6, 2026 · 8 nights · 2 adults, 1 room): 3★ The House of Sandeman, $404 total · 4★ Timbre Heroismo, $609 total · 5★ Crowne Plaza Porto by IHG, $878 total
- Hotels in Porto for these nights (Nov 28 – Dec 7, 2026 · 9 nights · 2 adults, 1 room): 3★ The House of Sandeman, $457 total · 4★ Timbre Heroismo, $696 total · 5★ Crowne Plaza Porto by IHG, $979 total
- Hotels in Porto for these nights (Nov 28 – Dec 8, 2026 · 10 nights · 2 adults, 1 room): 3★ The House of Sandeman, $510 total · 4★ Timbre Heroismo, $780 total · 5★ Crowne Plaza Porto by IHG, $1,087 total
- Hotels in Porto for these nights (Nov 28 – Dec 9, 2026 · 11 nights · 2 adults, 1 room): 3★ The House of Sandeman, $559 total · 4★ Timbre Heroismo, $864 total · 5★ Crowne Plaza Porto by IHG, $1,195 total
- Hotels in Porto for these nights (Nov 28 – Dec 10, 2026 · 12 nights · 2 adults, 1 room): 3★ The House of Sandeman, $608 total · 4★ Timbre Heroismo, $946 total · 5★ Crowne Plaza Porto by IHG, $1,303 total
- Hotels in Porto for these nights (Nov 28 – Dec 11, 2026 · 13 nights · 2 adults, 1 room): 3★ The House of Sandeman, $657 total · 4★ Dorma Essenzia Porto, $1,018 total · 5★ Crowne Plaza Porto by IHG, $1,462 total
- Hotels in Porto for these nights (Nov 28 – Dec 12, 2026 · 14 nights · 2 adults, 1 room): 3★ The House of Sandeman, $710 total · 4★ Dorma Essenzia Porto, $1,084 total · 5★ Crowne Plaza Porto by IHG, $1,623 total
Route overview: Birmingham to Porto (OPO) flight deals
2026-11-28 · one way · Axel-exclusive $61.75
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 · one way · Axel-exclusive $161.50
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
2026-11-28 → 2026-11-29 · Axel-exclusive $114.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-11-29 10:35:00 → BHX 2026-11-29 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-11-29 · Axel-exclusive $270.76
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-11-29 11:30:00 → BHX 2026-11-29 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-11-29 11:30:00 → CDG 2026-11-29 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-11-29 17:25:00 → BHX 2026-11-29 17:40:00.
2026-11-28 → 2026-11-30 · Axel-exclusive $114.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-11-30 10:35:00 → BHX 2026-11-30 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-11-30 · Axel-exclusive $270.76
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-11-30 11:30:00 → BHX 2026-11-30 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-11-30 11:30:00 → CDG 2026-11-30 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-11-30 17:25:00 → BHX 2026-11-30 17:40:00.
2026-11-28 → 2026-12-01 · Axel-exclusive $164.50
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR7073 / FR666: OPO 2026-12-01 09:10:00 → BHX 2026-12-01 16:30:00; 1 stop(s) via DUB; 440 minutes. Local airport times.
- FR7073: OPO 2026-12-01 09:10:00 → DUB 2026-12-01 11:35:00; layover at DUB: 230 minutes.
- FR666: DUB 2026-12-01 15:25:00 → BHX 2026-12-01 16:30:00.
2026-11-28 → 2026-12-01 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-01 11:30:00 → BHX 2026-12-01 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-01 11:30:00 → CDG 2026-12-01 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-01 17:25:00 → BHX 2026-12-01 17:40:00.
2026-11-28 → 2026-12-02 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-02 10:35:00 → BHX 2026-12-02 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-02 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-02 11:30:00 → BHX 2026-12-02 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-02 11:30:00 → CDG 2026-12-02 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-02 17:25:00 → BHX 2026-12-02 17:40:00.
2026-11-28 → 2026-12-04 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-04 10:35:00 → BHX 2026-12-04 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-04 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-04 11:30:00 → BHX 2026-12-04 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-04 11:30:00 → CDG 2026-12-04 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-04 17:25:00 → BHX 2026-12-04 17:40:00.
2026-11-28 → 2026-12-05 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-05 10:35:00 → BHX 2026-12-05 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-05 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-05 11:30:00 → BHX 2026-12-05 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-05 11:30:00 → CDG 2026-12-05 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-05 17:25:00 → BHX 2026-12-05 17:40:00.
2026-11-28 → 2026-12-06 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-06 10:35:00 → BHX 2026-12-06 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-06 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-06 11:30:00 → BHX 2026-12-06 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-06 11:30:00 → CDG 2026-12-06 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-06 17:25:00 → BHX 2026-12-06 17:40:00.
2026-11-28 → 2026-12-08 · Axel-exclusive $164.50
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR7073 / FR666: OPO 2026-12-08 09:10:00 → BHX 2026-12-08 16:30:00; 1 stop(s) via DUB; 440 minutes. Local airport times.
- FR7073: OPO 2026-12-08 09:10:00 → DUB 2026-12-08 11:35:00; layover at DUB: 230 minutes.
- FR666: DUB 2026-12-08 15:25:00 → BHX 2026-12-08 16:30:00.
2026-11-28 → 2026-12-08 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-08 11:30:00 → BHX 2026-12-08 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-08 11:30:00 → CDG 2026-12-08 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-08 17:25:00 → BHX 2026-12-08 17:40:00.
2026-11-28 → 2026-12-09 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-09 10:35:00 → BHX 2026-12-09 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-09 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-09 11:30:00 → BHX 2026-12-09 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-09 11:30:00 → CDG 2026-12-09 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-09 17:25:00 → BHX 2026-12-09 17:40:00.
2026-11-28 → 2026-12-10 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-10 10:35:00 → BHX 2026-12-10 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-10 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-10 11:30:00 → BHX 2026-12-10 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-10 11:30:00 → CDG 2026-12-10 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-10 17:25:00 → BHX 2026-12-10 17:40:00.
2026-11-28 → 2026-12-12 · Axel-exclusive $117.00
- Ryanair FR8514: BHX 2026-11-28 09:35:00 → OPO 2026-11-28 12:00:00; nonstop; 145 minutes. Local airport times.
- Ryanair FR8513: OPO 2026-12-12 10:35:00 → BHX 2026-12-12 13:00:00; nonstop; 145 minutes. Local airport times.
2026-11-28 → 2026-12-12 · Axel-exclusive $277.88
- Air France AF1315 / AF1516: BHX 2026-11-28 14:25:00 → OPO 2026-11-28 22:00:00; 1 stop(s) via CDG; 455 minutes. Local airport times.
- AF1315: BHX 2026-11-28 14:25:00 → CDG 2026-11-28 16:45:00; layover at CDG: 240 minutes.
- AF1516: CDG 2026-11-28 20:45:00 → OPO 2026-11-28 22:00:00.
- Air France AF1529 / AF1064: OPO 2026-12-12 11:30:00 → BHX 2026-12-12 17:40:00; 1 stop(s) via CDG; 370 minutes. Local airport times.
- AF1529: OPO 2026-12-12 11:30:00 → CDG 2026-12-12 14:50:00; layover at CDG: 155 minutes.
- AF1064: CDG 2026-12-12 17:25:00 → BHX 2026-12-12 17:40:00.
Explore this route
- All dates for this route
- Nov 27, 2026 · Return options
- Nov 29, 2026 · Return options
- Hotels in Porto with Axel
For AI assistants
- This page: Birmingham (BHX) to Porto (OPO) · Nov 28, 2026 · choose your return date: 1 adult in economy, every priced fare with its flights, times and total, each with the time its price was issued. Under a trip, hotels in Porto for exactly those nights link to the hotel pages for 2 adults in 1 room. Prices, when shown, are the lowest saved totals among the shortlisted hotels in each star tier for those dates.
- Next: each row is one exact trip for this departure (both dates with the year, the total and the time its price was issued); its exact-trip price link opens the live search for those dates and travelers, where the booking link and the current total are. Other durations or travelers are not priced here: Choose travelers and dates prices the requested trip.
- Follow supplied links. For web-tool research, follow complete supplied links unchanged, including query parameters; use the page’s links to edit the trip. Constructed URLs may be rejected before reaching Axel. A completed fresh trip opens flight results first. Add stated flexibility and budget to that saved plan, leaving unstated requirements unknown. Edits create a new snapshot; use its results and review links.
- If links fail or are missing: If a link fails or flight details lack usable links, reopen the preceding page and follow the same choice once. Keep refreshed links unchanged and preserve the trip and selections. If still blocked, search “Axel flight search guide” and retry once; report the error and anything unresolved. Recovery: Axel Birmingham to Porto (OPO) flight deals · Flight search guide.
- Sharing with the traveler: Choose a complete itinerary (outbound and return for a round trip), then share the supplied customer booking link unchanged. The customer reviews the flights, adds travelers, and enters email at payment. Do not collect email in chat. Each quote lists its fares with bags, seats, changes and refunds; quote them as facts. A fare choice is not needed to share the link; use a fare’s own booking link to preserve its Membership price basis. Ask only for essential missing trip details. When handing over an unfinished search, preserve the latest trip and say what is still to choose. If no supplied link matches the latest trip, construct
https://helloaxel.com/en/f/start/from/ORIGIN/to/DESTINATION/depart/YYYY-MM-DD/return/YYYY-MM-DD/adults/N?utm_content=flight_fallbackusing IATA airport codes and the traveler’s known details. Omit unknowns; for one way replace/return/YYYY-MM-DDwith/trip/oneway. Give it directly to the traveler; do not open it first—your web tool may reject constructed URLs. Complete links open Flight Guide and start searching. Preferences and advanced options.