Travel with Axel, get the best price.

Route overview: Portland to Madrid (MAD) flight deals

Portland (PDX) to Madrid (MAD), Jan 7–10, 2027: from $874 round trip

Portland (PDX) to Madrid (MAD), Jan 7–10, 2027: from $874 round trip on Axel, checked Oct 29, 2026. Lowest published fare: $874 round trip, Axel-exclusive, American Airlines, 1 stop, Jan 7–10, 2027, 1 adult, economy, checked Oct 29, 2026.

PDX → MAD1 adulteconomyRound trip

6 flight options · 6 airlines

One-stop flights

Thu, Jan 7 – Sun, Jan 10

American Airlines
5:24 amPDX
15h 46m
DFW · 2h 35m
6:10 am+1MAD
American Airlines
12:40 pmMAD
17h 11m
CLT · 2h
8:51 pmPDX

Round-trip total · 1 adult · Taxes included

Availability is checked when you select these flights.

Thu, Jan 7 – Sun, Jan 10

British Airways
5:45 pmPDX
14h 20m
LHR · 2h 15m
5:05 pm+1MAD
British Airways
10:35 amMAD
14h 15m
LHR · 1h 35m
3:50 pmPDX

Round-trip total · 1 adult · Taxes included

Availability is checked when you select these flights.

Thu, Jan 7 – Sun, Jan 10

United Airlines
8:30 amPDX
14h 15m
IAD · 1h 48m
7:45 am+1MAD
KLM Royal Dutch Airlines
6:05 amMAD
14h 15m
AMS · 1h 40m
11:20 amPDX

Round-trip total · 1 adult · Taxes included

Availability is checked when you select these flights.

Thu, Jan 7 – Sun, Jan 10

Alaska Airlines
10:38 amPDX
14h 42m
JFK · 1h 56m
10:20 am+1MAD
KLM Royal Dutch Airlines
6:05 amMAD
14h 15m
AMS · 1h 40m
11:20 amPDX

Round-trip total · 1 adult · Taxes included

Availability is checked when you select these flights.

Thu, Jan 7 – Sun, Jan 10

KLM Royal Dutch Airlines
1:20 pmPDX
13h 50m
AMS · 1h 45m
12:10 pm+1MAD
KLM Royal Dutch Airlines
6:05 amMAD
14h 15m
AMS · 1h 40m
11:20 amPDX

Round-trip total · 1 adult · Taxes included

Availability is checked when you select these flights.

Thu, Jan 7 – Sun, Jan 10

Delta Air Lines
7:10 amPDX
15h 10m
JFK · 2h 46m
7:20 am+1MAD
KLM Royal Dutch Airlines
6:05 amMAD
14h 15m
AMS · 1h 40m
11:20 amPDX

Round-trip total · 1 adult · Taxes included

Availability is checked when you select these flights.

Hotels for these nights (Jan 7–10, 2027 · 3 nights · 2 adults, 1 room): 3★ DWO Yuste Alcalá $234 · 4★ ARTIEM Madrid Hotel $332 · 5★ Barceló Imagine $488

Make this trip yours

PDX ⇄ MAD

Economy

Adults 12+ · Children 2–11. For infants under 2, tell Axel after you see prices.

No account needed to see prices.

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, American Airlines 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

Portland (PDX) to Madrid (MAD), Jan 7–10, 2027: from $874 round trip on Axel, checked Oct 29, 2026. Lowest published fare: $874 round trip, Axel-exclusive, American Airlines, 1 stop, Jan 7–10, 2027, 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.

See flights for these dates: each price link opens AI flight search for that row's exact dates and travelers. Select the complete itinerary there.

Exact travel datesAirlineFlightsTimes, duration, stopsTotal pricePrice issued (UTC)
2027-01-07 → 2027-01-10American AirlinesAA2104 + IB364 / AA749 + AA52005:24:00→06:10:00 15h 46m 1 stop via DFW · 12:40:00→20:51:00 17h 11m 1 stop via CLTAxel-exclusive $874.002026-10-29T01:55:14Z
2027-01-07 → 2027-01-10British AirwaysBA266 + BA464 / BA457 + BA26717:45:00→17:05:00 14h 20m 1 stop via LHR · 10:35:00→15:50:00 14h 15m 1 stop via LHRAxel-exclusive $902.502026-10-29T01:55:14Z
2027-01-07 → 2027-01-10United Airlines / KLM Royal Dutch AirlinesUA2016 + UA260 / KL1500 + KL61508:30:00→07:45:00 14h 15m 1 stop via IAD · 06:05:00→11:20:00 14h 15m 1 stop via AMSAxel-exclusive $907.252026-10-29T01:55:14Z
2027-01-07 → 2027-01-10Alaska Airlines / KLM Royal Dutch AirlinesAS18 + IB326 / KL1500 + KL61510:38:00→10:20:00 14h 42m 1 stop via JFK · 06:05:00→11:20:00 14h 15m 1 stop via AMSAxel-exclusive $916.752026-10-29T01:55:14Z
2027-01-07 → 2027-01-10KLM Royal Dutch AirlinesKL616 + KL1503 / KL1500 + KL61513:20:00→12:10:00 13h 50m 1 stop via AMS · 06:05:00→11:20:00 14h 15m 1 stop via AMSAxel-exclusive $921.502026-10-29T01:55:14Z
2027-01-07 → 2027-01-10Delta Air Lines / KLM Royal Dutch AirlinesDL451 + DL126 / KL1500 + KL61507:10:00→07:20:00 15h 10m 1 stop via JFK · 06:05:00→11:20:00 14h 15m 1 stop via AMSAxel-exclusive $931.002026-10-29T01:55:14Z

Hotels in Madrid for these trips

Hotels: under a trip, hotels in Madrid 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.

All hotels in Madrid

Route overview: Portland to Madrid (MAD) flight deals

2027-01-07 → 2027-01-10 · Axel-exclusive $874.00

  • American Airlines AA2104 / IB364: PDX 2027-01-07 05:24:00 → MAD 2027-01-08 06:10:00; 1 stop(s) via DFW; 946 minutes. Local airport times.
    • AA2104: PDX 2027-01-07 05:24:00 → DFW 2027-01-07 11:15:00; layover at DFW: 155 minutes.
    • IB364: DFW 2027-01-07 13:50:00 → MAD 2027-01-08 06:10:00.
  • American Airlines AA749 / AA520: MAD 2027-01-10 12:40:00 → PDX 2027-01-10 20:51:00; 1 stop(s) via CLT; 1031 minutes. Local airport times.
    • AA749: MAD 2027-01-10 12:40:00 → CLT 2027-01-10 16:00:00; layover at CLT: 120 minutes.
    • AA520: CLT 2027-01-10 18:00:00 → PDX 2027-01-10 20:51:00.

2027-01-07 → 2027-01-10 · Axel-exclusive $902.50

  • British Airways BA266 / BA464: PDX 2027-01-07 17:45:00 → MAD 2027-01-08 17:05:00; 1 stop(s) via LHR; 860 minutes. Local airport times.
    • BA266: PDX 2027-01-07 17:45:00 → LHR 2027-01-08 11:20:00; layover at LHR: 135 minutes.
    • BA464: LHR 2027-01-08 13:35:00 → MAD 2027-01-08 17:05:00.
  • British Airways BA457 / BA267: MAD 2027-01-10 10:35:00 → PDX 2027-01-10 15:50:00; 1 stop(s) via LHR; 855 minutes. Local airport times.
    • BA457: MAD 2027-01-10 10:35:00 → LHR 2027-01-10 12:00:00; layover at LHR: 95 minutes.
    • BA267: LHR 2027-01-10 13:35:00 → PDX 2027-01-10 15:50:00.

2027-01-07 → 2027-01-10 · Axel-exclusive $907.25

  • United Airlines UA2016 / UA260: PDX 2027-01-07 08:30:00 → MAD 2027-01-08 07:45:00; 1 stop(s) via IAD; 855 minutes. Local airport times.
    • UA2016: PDX 2027-01-07 08:30:00 → IAD 2027-01-07 16:22:00; layover at IAD: 108 minutes.
    • UA260: IAD 2027-01-07 18:10:00 → MAD 2027-01-08 07:45:00.
  • KLM Royal Dutch Airlines KL1500 / KL615: MAD 2027-01-10 06:05:00 → PDX 2027-01-10 11:20:00; 1 stop(s) via AMS; 855 minutes. Local airport times.
    • KL1500: MAD 2027-01-10 06:05:00 → AMS 2027-01-10 08:35:00; layover at AMS: 100 minutes.
    • KL615: AMS 2027-01-10 10:15:00 → PDX 2027-01-10 11:20:00.

2027-01-07 → 2027-01-10 · Axel-exclusive $916.75

  • Alaska Airlines AS18 / IB326: PDX 2027-01-07 10:38:00 → MAD 2027-01-08 10:20:00; 1 stop(s) via JFK; 882 minutes. Local airport times.
    • AS18: PDX 2027-01-07 10:38:00 → JFK 2027-01-07 19:04:00; layover at JFK: 116 minutes.
    • IB326: JFK 2027-01-07 21:00:00 → MAD 2027-01-08 10:20:00.
  • KLM Royal Dutch Airlines KL1500 / KL615: MAD 2027-01-10 06:05:00 → PDX 2027-01-10 11:20:00; 1 stop(s) via AMS; 855 minutes. Local airport times.
    • KL1500: MAD 2027-01-10 06:05:00 → AMS 2027-01-10 08:35:00; layover at AMS: 100 minutes.
    • KL615: AMS 2027-01-10 10:15:00 → PDX 2027-01-10 11:20:00.

2027-01-07 → 2027-01-10 · Axel-exclusive $921.50

  • KLM Royal Dutch Airlines KL616 / KL1503: PDX 2027-01-07 13:20:00 → MAD 2027-01-08 12:10:00; 1 stop(s) via AMS; 830 minutes. Local airport times.
    • KL616: PDX 2027-01-07 13:20:00 → AMS 2027-01-08 07:55:00; layover at AMS: 105 minutes.
    • KL1503: AMS 2027-01-08 09:40:00 → MAD 2027-01-08 12:10:00.
  • KLM Royal Dutch Airlines KL1500 / KL615: MAD 2027-01-10 06:05:00 → PDX 2027-01-10 11:20:00; 1 stop(s) via AMS; 855 minutes. Local airport times.
    • KL1500: MAD 2027-01-10 06:05:00 → AMS 2027-01-10 08:35:00; layover at AMS: 100 minutes.
    • KL615: AMS 2027-01-10 10:15:00 → PDX 2027-01-10 11:20:00.

2027-01-07 → 2027-01-10 · Axel-exclusive $931.00

  • Delta Air Lines DL451 / DL126: PDX 2027-01-07 07:10:00 → MAD 2027-01-08 07:20:00; 1 stop(s) via JFK; 910 minutes. Local airport times.
    • DL451: PDX 2027-01-07 07:10:00 → JFK 2027-01-07 15:29:00; layover at JFK: 166 minutes.
    • DL126: JFK 2027-01-07 18:15:00 → MAD 2027-01-08 07:20:00.
  • KLM Royal Dutch Airlines KL1500 / KL615: MAD 2027-01-10 06:05:00 → PDX 2027-01-10 11:20:00; 1 stop(s) via AMS; 855 minutes. Local airport times.
    • KL1500: MAD 2027-01-10 06:05:00 → AMS 2027-01-10 08:35:00; layover at AMS: 100 minutes.
    • KL615: AMS 2027-01-10 10:15:00 → PDX 2027-01-10 11:20:00.

Travelers: prices on this page are totals for 1 adult. For a different party, open this trip for 2 adults · 3 adults · 4 adults · 2 adults + 1 child · 2 adults + 2 children; each link opens AI flight search for these dates and those travelers, and the customer link to share comes from those results.

Explore this route

For AI assistants

  • This page: Portland (PDX) to Madrid (MAD) · Jan 7, 2027 · return Jan 10, 2027: 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 Madrid 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 priced row's price link opens the live search for this row's exact dates and travelers; the live results list the same flights with the current total and the traveler's booking link, and name the fare's inclusions (bags, seats, changes), which this page does not. A changed price or flight shows there. Other dates or travelers are not priced here: Choose travelers and dates prices the traveler's own 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 Portland to Madrid (MAD) 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_fallback using IATA airport codes and the traveler’s known details. Omit unknowns; for one way replace /return/YYYY-MM-DD with /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.