Fare Guide

Estimated lowest fares found within 7 days

Cheapest Airline EasyJet

The cheapest airline(s) flying from Porto to Milan is EasyJet.

  • EasyJet EasyJet
  • Ryanair Ryanair
  • TAP Air Portugal TAP Air Portugal
  • Vueling Airlines Vueling Airlines
  • Air France Air France
  • KLM KLM
  • Iberia Iberia
  • Luxair Luxair
  • Air Europa Air Europa
  • Lufthansa Lufthansa
Cheapest Month February

Travel Period: February 2025 - January 2026

The cheapest month(s) to fly from Porto to Milan is February.

  • Feb 2025
  • Mar 2025
  • Apr 2025
  • May 2025
  • Jun 2025
  • Jul 2025
  • Aug 2025
  • Sep 2025
  • Oct 2025
  • Nov 2025
  • Dec 2025
  • Jan 2026
Cheapest Day of the Week Thursday

The cheapest day(s) of the week to fly from Porto to Milan is Thursday.

  • Sun Sunday
  • Mon Monday
  • Tue Tuesday
  • Wed Wednesday
  • Thu Thursday
  • Fri Friday
  • Sat Saturday

Flight Schedules

Last Updated: Thu, 2 Jan, 2025

  • Time Earliest
    • Earliest
    • Latest
  • Depart Earliest
    • Earliest
    • Latest
  • Arrive
    • Earliest
    • Latest
  • Duration
    • Shortest
    • Longest
  • Stopover
    All
  • Airline Filter by Airline
    View All Airline
  • Availability
    • M
    • T
    • W
    • T
    • F
    • S
    • S
  • 06:15 OPO
    09:40 MXP
    2Hrs, 25m Direct
  • OPOPorto Airport 06:15 - MXP 09:40 2h 25m Direct
  • OPOPorto Airport 06:15
  • MXPMilan Malpensa Airport 09:40
  • 2h 25m
  • Direct
  • Ryanair (FR 4017)Boeing 737 Max 8 Passenger
  • Ryanair (FR 4017)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 Max 8 Passenger
  • 06:25 OPO
    09:50 MXP
    2Hrs, 25m Direct
  • OPOPorto Airport 06:25 - MXP 09:50 2h 25m Direct
  • OPOPorto Airport 06:25
  • MXPMilan Malpensa Airport 09:50
  • 2h 25m
  • Direct
  • Ryanair (FR 4017)Boeing 737 800
  • Ryanair (FR 4017)
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 800
  • 06:30 OPO
    10:00 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 06:30 - BGY 10:00 2h 30m Direct
  • OPOPorto Airport 06:30
  • BGYMilan Bergamo/Orio al Serio Airport 10:00
  • 2h 30m
  • Direct
  • Ryanair (FR 4041)Boeing 737 Max 8 Passenger
  • Ryanair (FR 4041)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • Boeing 737 Max 8 Passenger
  • 07:45 OPO
    11:15 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 07:45 - BGY 11:15 2h 30m Direct
  • OPOPorto Airport 07:45
  • BGYMilan Bergamo/Orio al Serio Airport 11:15
  • 2h 30m
  • Direct
  • Ryanair (FR 4041)Boeing 737 800
  • Ryanair (FR 4041)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • Boeing 737 800
  • 09:30 OPO
    13:10 MXP
    2Hrs, 40m Direct
  • OPOPorto Airport 09:30 - MXP 13:10 2h 40m Direct
  • OPOPorto Airport 09:30
  • MXPMilan Malpensa Airport 13:10
  • 2h 40m
  • Direct
  • EasyJet (U2 3882)Airbus
  • EasyJet (U2 3882)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • Airbus
  • 10:25 OPO
    13:55 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 10:25 - BGY 13:55 2h 30m Direct
  • OPOPorto Airport 10:25
  • BGYMilan Bergamo/Orio al Serio Airport 13:55
  • 2h 30m
  • Direct
  • Ryanair (FR 4041)Boeing 737 Max 8 Passenger
  • Ryanair (FR 4041)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • Boeing 737 Max 8 Passenger
  • 12:35 OPO
    16:00 MXP
    2Hrs, 25m Direct
  • OPOPorto Airport 12:35 - MXP 16:00 2h 25m Direct
  • OPOPorto Airport 12:35
  • MXPMilan Malpensa Airport 16:00
  • 2h 25m
  • Direct
  • Ryanair (FR 4017)Boeing 737 Max 8 Passenger
  • Ryanair (FR 4017)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • Boeing 737 Max 8 Passenger
  • 12:45 OPO
    16:25 MXP
    2Hrs, 40m Direct
  • OPOPorto Airport 12:45 - MXP 16:25 2h 40m Direct
  • OPOPorto Airport 12:45
  • MXPMilan Malpensa Airport 16:25
  • 2h 40m
  • Direct
  • EasyJet (U2 3882)Airbus
  • EasyJet (U2 3882)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • Airbus
  • 12:45 OPO
    16:15 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 12:45 - BGY 16:15 2h 30m Direct
  • OPOPorto Airport 12:45
  • BGYMilan Bergamo/Orio al Serio Airport 16:15
  • 2h 30m
  • Direct
  • Ryanair (FR 4041)Boeing 737 800
  • Ryanair (FR 4041)
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • Boeing 737 800
  • 14:35 OPO
    18:05 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 14:35 - BGY 18:05 2h 30m Direct
  • OPOPorto Airport 14:35
  • BGYMilan Bergamo/Orio al Serio Airport 18:05
  • 2h 30m
  • Direct
  • Ryanair (FR 4041)Boeing 737 800
  • Ryanair (FR 4041)
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 800
  • 15:05 OPO
    18:35 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 15:05 - BGY 18:35 2h 30m Direct
  • OPOPorto Airport 15:05
  • BGYMilan Bergamo/Orio al Serio Airport 18:35
  • 2h 30m
  • Direct
  • Ryanair (FR 4041)Boeing 737 Max 8 Passenger
  • Ryanair (FR 4041)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 Max 8 Passenger
  • 15:45 OPO
    19:05 MXP
    2Hrs, 20m Direct
  • OPOPorto Airport 15:45 - MXP 19:05 2h 20m Direct
  • OPOPorto Airport 15:45
  • MXPMilan Malpensa Airport 19:05
  • 2h 20m
  • Direct
  • Ryanair (FR 4017)Boeing 737 800
  • Ryanair (FR 4017)
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • Boeing 737 800
  • 19:05 OPO
    22:35 BGY
    2Hrs, 30m Direct
  • OPOPorto Airport 19:05 - BGY 22:35 2h 30m Direct
  • OPOPorto Airport 19:05
  • BGYMilan Bergamo/Orio al Serio Airport 22:35
  • 2h 30m
  • Direct
  • Ryanair (FR 4637)Boeing 737 800
  • Ryanair (FR 4637)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • Boeing 737 800
  • 06:00 OPO
    13:30 LIN
    6Hrs, 30m 1 Stop (AMS)
  • OPOPorto Airport 06:00 - LIN 13:30 6h 30m 1 Stop (AMS) Amsterdam
  • OPOPorto Airport 06:00
    AMSAmsterdam Airport 11:50
  • AMSAmsterdam Airport 09:35
    LINMilan Linate Airport 13:30
  • 6h 30m (2h 15m)
  • 1 Stop AMS · Amsterdam 2h 15m
  • KLM (KL 1570)Embraer 195 E2
    KLM (KL 1615)Boeing 737 700
  • KLM (KL 1570)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 06:00 OPO
    12:55 LIN
    5Hrs, 55m 1 Stop (FRA)
  • OPOPorto Airport 06:00 - LIN 12:55 5h 55m 1 Stop (FRA) Frankfurt
  • OPOPorto Airport 06:00
    FRAFrankfurt International Airport 11:40
  • FRAFrankfurt International Airport 09:50
    LINMilan Linate Airport 12:55
  • 5h 55m (1h 50m)
  • 1 Stop FRA · Frankfurt 1h 50m
  • Lufthansa (LH 1181)Airbus
    Air Dolomiti (EN 8804)Embraer Emb E90
  • Lufthansa (LH 1181)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 06:00 OPO
    12:45 MXP
    5Hrs, 45m 1 Stop (MAD)
  • OPOPorto Airport 06:00 - MXP 12:45 5h 45m 1 Stop (MAD) Madrid
  • OPOPorto Airport 06:00
    MADMadrid Barajas Airport 10:35
  • MADMadrid Barajas Airport 08:15
    MXPMilan Malpensa Airport 12:45
  • 5h 45m (2h 20m)
  • 1 Stop MAD · Madrid 2h 20m
  • Ryanair (FR 573)Boeing 737 800
    Ryanair (FR 2753)Boeing 737 800
  • Ryanair (FR 573)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 06:00 OPO
    13:30 LIN
    6Hrs, 30m 1 Stop (AMS)
  • OPOPorto Airport 06:00 - LIN 13:30 6h 30m 1 Stop (AMS) Amsterdam
  • OPOPorto Airport 06:00
    AMSAmsterdam Airport 11:50
  • AMSAmsterdam Airport 09:35
    LINMilan Linate Airport 13:30
  • 6h 30m (2h 15m)
  • 1 Stop AMS · Amsterdam 2h 15m
  • KLM (KL 1570)Embraer 195 E2
    KLM (KL 1615)Embraer 175
  • KLM (KL 1570)
    • -
    • T
    • W
    • -
    • -
    • -
    • -
  • 06:00 OPO
    13:55 MXP
    6Hrs, 55m 1 Stop (FRA)
  • OPOPorto Airport 06:00 - MXP 13:55 6h 55m 1 Stop (FRA) Frankfurt
  • OPOPorto Airport 06:00
    FRAFrankfurt International Airport 12:40
  • FRAFrankfurt International Airport 09:50
    MXPMilan Malpensa Airport 13:55
  • 6h 55m (2h 50m)
  • 1 Stop FRA · Frankfurt 2h 50m
  • Lufthansa (LH 1181)Airbus
    Air Dolomiti (EN 8810)Embraer Emb E90
  • Lufthansa (LH 1181)
    • M
    • -
    • -
    • -
    • F
    • -
    • -
  • 06:05 OPO
    12:35 MXP
    5Hrs, 30m 1 Stop (MUC)
  • OPOPorto Airport 06:05 - MXP 12:35 5h 30m 1 Stop (MUC) Munich
  • OPOPorto Airport 06:05
    MUCMunich International Airport 11:30
  • MUCMunich International Airport 09:55
    MXPMilan Malpensa Airport 12:35
  • 5h 30m (1h 35m)
  • 1 Stop MUC · Munich 1h 35m
  • Lufthansa (LH 1785)Airbus
    Air Dolomiti (EN 8274)Embraer 195
  • Lufthansa (LH 1785)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 06:15 OPO
    13:30 LIN
    6Hrs, 15m 1 Stop (AMS)
  • OPOPorto Airport 06:15 - LIN 13:30 6h 15m 1 Stop (AMS) Amsterdam
  • OPOPorto Airport 06:15
    AMSAmsterdam Airport 11:50
  • AMSAmsterdam Airport 09:50
    LINMilan Linate Airport 13:30
  • 6h 15m (2h)
  • 1 Stop AMS · Amsterdam 2h
  • KLM (KL 1570)Embraer 195 E2
    KLM (KL 1615)Embraer 175
  • KLM (KL 1570)
    • -
    • -
    • -
    • T
    • F
    • -
    • -
  • 06:20 OPO
    12:25 MXP
    5Hrs, 05m 1 Stop (STN)
  • OPOPorto Airport 06:20 - MXP 12:25 5h 05m 1 Stop (STN) London
  • OPOPorto Airport 06:20
    STNLondon Stansted Airport 09:35
  • STNLondon Stansted Airport 08:35
    MXPMilan Malpensa Airport 12:25
  • 5h 05m (1h)
  • 1 Stop STN · London 1h
  • Ryanair (FR 1262)Boeing 737 Max 8 Passenger
    Ryanair (FR 8719)Boeing 737 800
  • Ryanair (FR 1262)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 06:20 OPO
    14:20 MXP
    7Hrs, 00m 1 Stop (STN)
  • OPOPorto Airport 06:20 - MXP 14:20 7h 1 Stop (STN) London
  • OPOPorto Airport 06:20
    STNLondon Stansted Airport 11:30
  • STNLondon Stansted Airport 08:35
    MXPMilan Malpensa Airport 14:20
  • 7h (2h 55m)
  • 1 Stop STN · London 2h 55m
  • Ryanair (FR 1262)Boeing 737 Max 8 Passenger
    Ryanair (FR 2757)Boeing 737 800
  • Ryanair (FR 1262)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 06:20 OPO
    14:10 BGY
    6Hrs, 50m 1 Stop (TLS)
  • OPOPorto Airport 06:20 - BGY 14:10 6h 50m 1 Stop (TLS) Toulouse
  • OPOPorto Airport 06:20
    TLSToulouse Blagnac Airport 12:40
  • TLSToulouse Blagnac Airport 09:00
    BGYMilan Bergamo/Orio al Serio Airport 14:10
  • 6h 50m (3h 40m)
  • 1 Stop TLS · Toulouse 3h 40m
  • Ryanair (FR 1989)Boeing 737 Max 8 Passenger
    Ryanair (FR 5981)Boeing 737 800
  • Ryanair (FR 1989)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 06:20 OPO
    13:30 LIN
    6Hrs, 10m 1 Stop (AMS)
  • OPOPorto Airport 06:20 - LIN 13:30 6h 10m 1 Stop (AMS) Amsterdam
  • OPOPorto Airport 06:20
    AMSAmsterdam Airport 11:50
  • AMSAmsterdam Airport 09:55
    LINMilan Linate Airport 13:30
  • 6h 10m (1h 55m)
  • 1 Stop AMS · Amsterdam 1h 55m
  • KLM (KL 1570)Embraer 195 E2
    KLM (KL 1615)Embraer 175
  • KLM (KL 1570)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 06:30 OPO
    14:35 MXP
    7Hrs, 05m 1 Stop (BVA)
  • OPOPorto Airport 06:30 - MXP 14:35 7h 05m 1 Stop (BVA) Paris
  • OPOPorto Airport 06:30
    BVAParis Beauvais-Tille Airport 13:05
  • BVAParis Beauvais-Tille Airport 09:40
    MXPMilan Malpensa Airport 14:35
  • 7h 05m (3h 25m)
  • 1 Stop BVA · Paris 3h 25m
  • Ryanair (FR 594)Boeing 737 800
    Ryanair (FR 8883)Boeing 737 Max 8 Passenger
  • Ryanair (FR 594)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 06:30 OPO
    14:35 BGY
    7Hrs, 05m 1 Stop (BVA)
  • OPOPorto Airport 06:30 - BGY 14:35 7h 05m 1 Stop (BVA) Paris
  • OPOPorto Airport 06:30
    BVAParis Beauvais-Tille Airport 13:05
  • BVAParis Beauvais-Tille Airport 09:40
    BGYMilan Bergamo/Orio al Serio Airport 14:35
  • 7h 05m (3h 25m)
  • 1 Stop BVA · Paris 3h 25m
  • Ryanair (FR 594)Boeing 737 Max 8 Passenger
    Ryanair (FR 3433)Boeing 737 800
  • Ryanair (FR 594)
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 06:30 OPO
    12:35 MXP
    5Hrs, 05m 1 Stop (MUC)
  • OPOPorto Airport 06:30 - MXP 12:35 5h 05m 1 Stop (MUC) Munich
  • OPOPorto Airport 06:30
    MUCMunich International Airport 11:30
  • MUCMunich International Airport 10:20
    MXPMilan Malpensa Airport 12:35
  • 5h 05m (1h 10m)
  • 1 Stop MUC · Munich 1h 10m
  • Lufthansa (LH 1785)Airbus
    Air Dolomiti (EN 8274)Embraer 195
  • Lufthansa (LH 1785)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 06:55 OPO
    13:05 BGY
    5Hrs, 10m 1 Stop (VLC)
  • OPOPorto Airport 06:55 - BGY 13:05 5h 10m 1 Stop (VLC) Valencia
  • OPOPorto Airport 06:55
    VLCValencia Airport 11:10
  • VLCValencia Airport 09:15
    BGYMilan Bergamo/Orio al Serio Airport 13:05
  • 5h 10m (1h 55m)
  • 1 Stop VLC · Valencia 1h 55m
  • Ryanair (FR 1710)Boeing 737 800
    Ryanair (FR 496)Boeing 737 800
  • Ryanair (FR 1710)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 07:30 OPO
    15:10 BGY
    6Hrs, 40m 1 Stop (BVA)
  • OPOPorto Airport 07:30 - BGY 15:10 6h 40m 1 Stop (BVA) Paris
  • OPOPorto Airport 07:30
    BVAParis Beauvais-Tille Airport 13:40
  • BVAParis Beauvais-Tille Airport 10:40
    BGYMilan Bergamo/Orio al Serio Airport 15:10
  • 6h 40m (3h)
  • 1 Stop BVA · Paris 3h
  • Ryanair (FR 7474)Boeing 737 800
    Ryanair (FR 3433)Boeing 737 Max 8 Passenger
  • Ryanair (FR 7474)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 07:30 OPO
    15:15 MXP
    6Hrs, 45m 1 Stop (VLC)
  • OPOPorto Airport 07:30 - MXP 15:15 6h 45m 1 Stop (VLC) Valencia
  • OPOPorto Airport 07:30
    VLCValencia Airport 13:15
  • VLCValencia Airport 09:50
    MXPMilan Malpensa Airport 15:15
  • 6h 45m (3h 25m)
  • 1 Stop VLC · Valencia 3h 25m
  • Ryanair (FR 1710)Boeing 737 800
    Ryanair (FR 1445)Boeing 737 800
  • Ryanair (FR 1710)
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 08:20 OPO
    14:35 MXP
    5Hrs, 15m 1 Stop (BVA)
  • OPOPorto Airport 08:20 - MXP 14:35 5h 15m 1 Stop (BVA) Paris
  • OPOPorto Airport 08:20
    BVAParis Beauvais-Tille Airport 13:05
  • BVAParis Beauvais-Tille Airport 11:30
    MXPMilan Malpensa Airport 14:35
  • 5h 15m (1h 35m)
  • 1 Stop BVA · Paris 1h 35m
  • Ryanair (FR 7474)Boeing 737 Max 8 Passenger
    Ryanair (FR 8883)Boeing 737 Max 8 Passenger
  • Ryanair (FR 7474)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 08:30 OPO
    15:10 MXP
    5Hrs, 40m 1 Stop (BCN)
  • OPOPorto Airport 08:30 - MXP 15:10 5h 40m 1 Stop (BCN) Barcelona
  • OPOPorto Airport 08:30
    BCNBarcelona Airport 13:25
  • BCNBarcelona Airport 11:15
    MXPMilan Malpensa Airport 15:10
  • 5h 40m (2h 10m)
  • 1 Stop BCN · Barcelona 2h 10m
  • Ryanair (FR 4546)Boeing 737 Max 8 Passenger
    Ryanair (FR 7541)Boeing 737 800
  • Ryanair (FR 4546)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 08:35 OPO
    16:30 MXP
    6Hrs, 55m 1 Stop (BCN)
  • OPOPorto Airport 08:35 - MXP 16:30 6h 55m 1 Stop (BCN) Barcelona
  • OPOPorto Airport 08:35
    BCNBarcelona Airport 14:50
  • BCNBarcelona Airport 11:20
    MXPMilan Malpensa Airport 16:30
  • 6h 55m (3h 30m)
  • 1 Stop BCN · Barcelona 3h 30m
  • Vueling Airlines (VY 8475)Airbus Industrie A320 Sharklets
    Vueling Airlines (VY 6332)Airbus Industrie A320 Sharklets
  • Vueling Airlines (VY 8475)
    • -
    • -
    • W
    • -
    • -
    • -
    • -
  • 08:45 OPO
    16:35 BGY
    6Hrs, 50m 1 Stop (STN)
  • OPOPorto Airport 08:45 - BGY 16:35 6h 50m 1 Stop (STN) London
  • OPOPorto Airport 08:45
    STNLondon Stansted Airport 13:45
  • STNLondon Stansted Airport 11:10
    BGYMilan Bergamo/Orio al Serio Airport 16:35
  • 6h 50m (2h 35m)
  • 1 Stop STN · London 2h 35m
  • Ryanair (FR 1262)Boeing 737 800
    Ryanair (FR 2738)Boeing 737 800
  • Ryanair (FR 1262)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 08:45 OPO
    15:10 MXP
    5Hrs, 25m 1 Stop (STN)
  • OPOPorto Airport 08:45 - MXP 15:10 5h 25m 1 Stop (STN) London
  • OPOPorto Airport 08:45
    STNLondon Stansted Airport 12:20
  • STNLondon Stansted Airport 11:10
    MXPMilan Malpensa Airport 15:10
  • 5h 25m (1h 10m)
  • 1 Stop STN · London 1h 10m
  • Ryanair (FR 1262)Boeing 737 800
    Ryanair (FR 8721)Boeing 737 800
  • Ryanair (FR 1262)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 09:05 OPO
    16:15 BGY
    6Hrs, 10m 1 Stop (CRL)
  • OPOPorto Airport 09:05 - BGY 16:15 6h 10m 1 Stop (CRL) Brussels
  • OPOPorto Airport 09:05
    CRLBrussels S. Charleroi Airport 14:45
  • CRLBrussels S. Charleroi Airport 12:30
    BGYMilan Bergamo/Orio al Serio Airport 16:15
  • 6h 10m (2h 15m)
  • 1 Stop CRL · Brussels 2h 15m
  • Ryanair (FR 1387)Boeing 737 Max 8 Passenger
    Ryanair (FR 4474)Boeing 737 800
  • Ryanair (FR 1387)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 09:20 OPO
    17:10 BGY
    6Hrs, 50m 1 Stop (STN)
  • OPOPorto Airport 09:20 - BGY 17:10 6h 50m 1 Stop (STN) London
  • OPOPorto Airport 09:20
    STNLondon Stansted Airport 14:20
  • STNLondon Stansted Airport 11:45
    BGYMilan Bergamo/Orio al Serio Airport 17:10
  • 6h 50m (2h 35m)
  • 1 Stop STN · London 2h 35m
  • Ryanair (FR 7701)Boeing 737 800
    Ryanair (FR 2738)Boeing 737 800
  • Ryanair (FR 7701)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 09:30 OPO
    15:30 MXP
    5Hrs, 00m 1 Stop (VLC)
  • OPOPorto Airport 09:30 - MXP 15:30 5h 1 Stop (VLC) Valencia
  • OPOPorto Airport 09:30
    VLCValencia Airport 13:30
  • VLCValencia Airport 11:55
    MXPMilan Malpensa Airport 15:30
  • 5h (1h 35m)
  • 1 Stop VLC · Valencia 1h 35m
  • Ryanair (FR 1710)Boeing 737 800
    Ryanair (FR 7471)Boeing 737 800
  • Ryanair (FR 1710)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 09:30 OPO
    16:55 BGY
    6Hrs, 25m 1 Stop (VLC)
  • OPOPorto Airport 09:30 - BGY 16:55 6h 25m 1 Stop (VLC) Valencia
  • OPOPorto Airport 09:30
    VLCValencia Airport 15:00
  • VLCValencia Airport 11:55
    BGYMilan Bergamo/Orio al Serio Airport 16:55
  • 6h 25m (3h 05m)
  • 1 Stop VLC · Valencia 3h 05m
  • Ryanair (FR 1710)Boeing 737 800
    Ryanair (FR 496)Boeing 737 800
  • Ryanair (FR 1710)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 09:40 OPO
    15:50 MXP
    5Hrs, 10m 1 Stop (BCN)
  • OPOPorto Airport 09:40 - MXP 15:50 5h 10m 1 Stop (BCN) Barcelona
  • OPOPorto Airport 09:40
    BCNBarcelona Airport 14:05
  • BCNBarcelona Airport 12:25
    MXPMilan Malpensa Airport 15:50
  • 5h 10m (1h 40m)
  • 1 Stop BCN · Barcelona 1h 40m
  • Ryanair (FR 4546)Boeing 737 800
    Ryanair (FR 269)Boeing 737 800
  • Ryanair (FR 4546)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 09:50 OPO
    17:00 BGY
    6Hrs, 10m 1 Stop (STN)
  • OPOPorto Airport 09:50 - BGY 17:00 6h 10m 1 Stop (STN) London
  • OPOPorto Airport 09:50
    STNLondon Stansted Airport 14:10
  • STNLondon Stansted Airport 12:15
    BGYMilan Bergamo/Orio al Serio Airport 17:00
  • 6h 10m (1h 55m)
  • 1 Stop STN · London 1h 55m
  • Ryanair (FR 1276)Boeing 737 800
    Ryanair (FR 2738)Boeing 737 800
  • Ryanair (FR 1276)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 09:55 OPO
    16:55 MXP
    6Hrs, 00m 1 Stop (LIS)
  • OPOPorto Airport 09:55 - MXP 16:55 6h 1 Stop (LIS) Lisbon
  • OPOPorto Airport 09:55
    LISLisbon Airport 13:10
  • LISLisbon Airport 10:55
    MXPMilan Malpensa Airport 16:55
  • 6h (2h 15m)
  • 1 Stop LIS · Lisbon 2h 15m
  • TAP Air Portugal (TP 1923)Airbus
    TAP Air Portugal (TP 826)Airbus
  • TAP Air Portugal (TP 1923)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 10:05 OPO
    16:55 MXP
    5Hrs, 50m 1 Stop (LIS)
  • OPOPorto Airport 10:05 - MXP 16:55 5h 50m 1 Stop (LIS) Lisbon
  • OPOPorto Airport 10:05
    LISLisbon Airport 13:10
  • LISLisbon Airport 11:05
    MXPMilan Malpensa Airport 16:55
  • 5h 50m (2h 05m)
  • 1 Stop LIS · Lisbon 2h 05m
  • TAP Air Portugal (TP 1923)Airbus
    TAP Air Portugal (TP 826)Airbus
  • TAP Air Portugal (TP 1923)
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 10:05 OPO
    15:50 BGY
    4Hrs, 45m 1 Stop (VLC)
  • OPOPorto Airport 10:05 - BGY 15:50 4h 45m 1 Stop (VLC) Valencia
  • OPOPorto Airport 10:05
    VLCValencia Airport 13:55
  • VLCValencia Airport 12:30
    BGYMilan Bergamo/Orio al Serio Airport 15:50
  • 4h 45m (1h 25m)
  • 1 Stop VLC · Valencia 1h 25m
  • Ryanair (FR 1710)Boeing 737 800
    Ryanair (FR 4632)Boeing 737 800
  • Ryanair (FR 1710)
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • 10:20 OPO
    17:10 BGY
    5Hrs, 50m 1 Stop (STN)
  • OPOPorto Airport 10:20 - BGY 17:10 5h 50m 1 Stop (STN) London
  • OPOPorto Airport 10:20
    STNLondon Stansted Airport 14:20
  • STNLondon Stansted Airport 12:45
    BGYMilan Bergamo/Orio al Serio Airport 17:10
  • 5h 50m (1h 35m)
  • 1 Stop STN · London 1h 35m
  • Ryanair (FR 1276)Boeing 737 800
    Ryanair (FR 2738)Boeing 737 800
  • Ryanair (FR 1276)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 10:20 OPO
    16:35 BGY
    5Hrs, 15m 1 Stop (STN)
  • OPOPorto Airport 10:20 - BGY 16:35 5h 15m 1 Stop (STN) London
  • OPOPorto Airport 10:20
    STNLondon Stansted Airport 13:45
  • STNLondon Stansted Airport 12:45
    BGYMilan Bergamo/Orio al Serio Airport 16:35
  • 5h 15m (1h)
  • 1 Stop STN · London 1h
  • Ryanair (FR 1276)Boeing 737 800
    Ryanair (FR 2738)Boeing 737 800
  • Ryanair (FR 1276)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 10:35 OPO
    18:00 BGY
    6Hrs, 25m 1 Stop (STN)
  • OPOPorto Airport 10:35 - BGY 18:00 6h 25m 1 Stop (STN) London
  • OPOPorto Airport 10:35
    STNLondon Stansted Airport 15:10
  • STNLondon Stansted Airport 13:00
    BGYMilan Bergamo/Orio al Serio Airport 18:00
  • 6h 25m (2h 10m)
  • 1 Stop STN · London 2h 10m
  • Ryanair (FR 1276)Boeing 737 Max 8 Passenger
    Ryanair (FR 4189)Boeing 737 800
  • Ryanair (FR 1276)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 10:35 OPO
    17:05 BGY
    5Hrs, 30m 1 Stop (STN)
  • OPOPorto Airport 10:35 - BGY 17:05 5h 30m 1 Stop (STN) London
  • OPOPorto Airport 10:35
    STNLondon Stansted Airport 14:15
  • STNLondon Stansted Airport 13:00
    BGYMilan Bergamo/Orio al Serio Airport 17:05
  • 5h 30m (1h 15m)
  • 1 Stop STN · London 1h 15m
  • Ryanair (FR 1276)Boeing 737 Max 8 Passenger
    Ryanair (FR 3674)Boeing 737 Max 8 Passenger
  • Ryanair (FR 1276)
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 10:40 OPO
    17:00 BGY
    5Hrs, 20m 1 Stop (BCN)
  • OPOPorto Airport 10:40 - BGY 17:00 5h 20m 1 Stop (BCN) Barcelona
  • OPOPorto Airport 10:40
    BCNBarcelona Airport 15:15
  • BCNBarcelona Airport 13:25
    BGYMilan Bergamo/Orio al Serio Airport 17:00
  • 5h 20m (1h 50m)
  • 1 Stop BCN · Barcelona 1h 50m
  • Ryanair (FR 4584)Boeing 737 800
    Ryanair (FR 3320)Boeing 737 Max 8 Passenger
  • Ryanair (FR 4584)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 11:15 OPO
    18:35 LIN
    6Hrs, 20m 1 Stop (AMS)
  • OPOPorto Airport 11:15 - LIN 18:35 6h 20m 1 Stop (AMS) Amsterdam
  • OPOPorto Airport 11:15
    AMSAmsterdam Airport 16:55
  • AMSAmsterdam Airport 14:55
    LINMilan Linate Airport 18:35
  • 6h 20m (2h)
  • 1 Stop AMS · Amsterdam 2h
  • KLM (KL 1572)Embraer 195 E2
    KLM (KL 1617)Boeing 737 800
  • KLM (KL 1572)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 11:20 OPO
    18:10 BGY
    5Hrs, 50m 1 Stop (EIN)
  • OPOPorto Airport 11:20 - BGY 18:10 5h 50m 1 Stop (EIN) Eindhoven
  • OPOPorto Airport 11:20
    EINEindhoven Airport 16:40
  • EINEindhoven Airport 15:00
    BGYMilan Bergamo/Orio al Serio Airport 18:10
  • 5h 50m (1h 40m)
  • 1 Stop EIN · Eindhoven 1h 40m
  • Ryanair (FR 7472)Boeing 737 Max 8 Passenger
    Ryanair (FR 3461)Boeing 737 Max 8 Passenger
  • Ryanair (FR 7472)
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 11:25 OPO
    17:05 MXP
    4Hrs, 40m 1 Stop (LUX)
  • OPOPorto Airport 11:25 - MXP 17:05 4h 40m 1 Stop (LUX) Luxembourg
  • OPOPorto Airport 11:25
    LUXLuxembourg Airport 15:50
  • LUXLuxembourg Airport 14:45
    MXPMilan Malpensa Airport 17:05
  • 4h 40m (1h 05m)
  • 1 Stop LUX · Luxembourg 1h 05m
  • TAP Air Portugal (TP 686)Embraer 195
    Luxair (LG 6995)Dehavilland Dash 8 400
  • TAP Air Portugal (TP 686)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 11:45 OPO
    19:35 LIN
    6Hrs, 50m 1 Stop (CDG)
  • OPOPorto Airport 11:45 - LIN 19:35 6h 50m 1 Stop (CDG) Paris
  • OPOPorto Airport 11:45
    CDGParis Charles de Gaulle Airport 18:10
  • CDGParis Charles de Gaulle Airport 15:05
    LINMilan Linate Airport 19:35
  • 6h 50m (3h 05m)
  • 1 Stop CDG · Paris 3h 05m
  • Air France (AF 1529)Airbus
    Air France (AF 1312)Airbus
  • Air France (AF 1529)
    • -
    • -
    • W
    • -
    • -
    • -
    • -
  • 11:45 OPO
    17:40 MXP
    4Hrs, 55m 1 Stop (CDG)
  • OPOPorto Airport 11:45 - MXP 17:40 4h 55m 1 Stop (CDG) Paris
  • OPOPorto Airport 11:45
    CDGParis Charles de Gaulle Airport 16:15
  • CDGParis Charles de Gaulle Airport 15:05
    MXPMilan Malpensa Airport 17:40
  • 4h 55m (1h 10m)
  • 1 Stop CDG · Paris 1h 10m
  • Air France (AF 1529)Embraer Emb E90
    Air France (AF 1730)Airbus
  • Air France (AF 1529)
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • 11:45 OPO
    17:40 MXP
    4Hrs, 55m 1 Stop (CDG)
  • OPOPorto Airport 11:45 - MXP 17:40 4h 55m 1 Stop (CDG) Paris
  • OPOPorto Airport 11:45
    CDGParis Charles de Gaulle Airport 16:15
  • CDGParis Charles de Gaulle Airport 15:05
    MXPMilan Malpensa Airport 17:40
  • 4h 55m (1h 10m)
  • 1 Stop CDG · Paris 1h 10m
  • Air France (AF 1529)Airbus
    Air France (AF 1730)Embraer Emb E90
  • Air France (AF 1529)
    • -
    • -
    • W
    • -
    • -
    • -
    • -
  • 11:55 OPO
    18:10 MXP
    5Hrs, 15m 1 Stop (ZRH)
  • OPOPorto Airport 11:55 - MXP 18:10 5h 15m 1 Stop (ZRH) Zurich
  • OPOPorto Airport 11:55
    ZRHZurich Airport 17:15
  • ZRHZurich Airport 15:35
    MXPMilan Malpensa Airport 18:10
  • 5h 15m (1h 40m)
  • 1 Stop ZRH · Zurich 1h 40m
  • TAP Air Portugal (TP 920)Embraer 195
    Swiss (LX 1622)Airbus
  • TAP Air Portugal (TP 920)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 11:55 OPO
    18:15 MXP
    5Hrs, 20m 1 Stop (ZRH)
  • OPOPorto Airport 11:55 - MXP 18:15 5h 20m 1 Stop (ZRH) Zurich
  • OPOPorto Airport 11:55
    ZRHZurich Airport 17:20
  • ZRHZurich Airport 15:20
    MXPMilan Malpensa Airport 18:15
  • 5h 20m (2h)
  • 1 Stop ZRH · Zurich 2h
  • Swiss (LX 2067)Airbus
    Swiss (LX 1622)Airbus A220 300
  • Swiss (LX 2067)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 12:00 OPO
    18:20 MXP
    5Hrs, 20m 1 Stop (ZRH)
  • OPOPorto Airport 12:00 - MXP 18:20 5h 20m 1 Stop (ZRH) Zurich
  • OPOPorto Airport 12:00
    ZRHZurich Airport 17:20
  • ZRHZurich Airport 15:35
    MXPMilan Malpensa Airport 18:20
  • 5h 20m (1h 45m)
  • 1 Stop ZRH · Zurich 1h 45m
  • TAP Air Portugal (TP 920)Embraer 195
    Swiss (LX 1622)Airbus A220 300
  • TAP Air Portugal (TP 920)
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 12:25 OPO
    19:40 LIN
    6Hrs, 15m 1 Stop (MAD)
  • OPOPorto Airport 12:25 - LIN 19:40 6h 15m 1 Stop (MAD) Madrid
  • OPOPorto Airport 12:25
    MADMadrid Barajas Airport 17:30
  • MADMadrid Barajas Airport 14:45
    LINMilan Linate Airport 19:40
  • 6h 15m (2h 45m)
  • 1 Stop MAD · Madrid 2h 45m
  • Iberia (IB 546)Airbus Industrie A320 Sharklets
    Iberia (IB 665)Airbus
  • Iberia (IB 546)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 12:25 OPO
    18:30 LIN
    5Hrs, 05m 1 Stop (FRA)
  • OPOPorto Airport 12:25 - LIN 18:30 5h 05m 1 Stop (FRA) Frankfurt
  • OPOPorto Airport 12:25
    FRAFrankfurt International Airport 17:15
  • FRAFrankfurt International Airport 16:15
    LINMilan Linate Airport 18:30
  • 5h 05m (1h)
  • 1 Stop FRA · Frankfurt 1h
  • Lufthansa (LH 1177)Airbus
    Air Dolomiti (EN 8802)Embraer Emb E90
  • Lufthansa (LH 1177)
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • 12:25 OPO
    19:40 LIN
    6Hrs, 15m 1 Stop (MAD)
  • OPOPorto Airport 12:25 - LIN 19:40 6h 15m 1 Stop (MAD) Madrid
  • OPOPorto Airport 12:25
    MADMadrid Barajas Airport 17:30
  • MADMadrid Barajas Airport 14:45
    LINMilan Linate Airport 19:40
  • 6h 15m (2h 45m)
  • 1 Stop MAD · Madrid 2h 45m
  • Iberia (IB 1150)Canadair Regional
    Iberia (IB 665)Airbus
  • Iberia (IB 1150)
    • -
    • T
    • -
    • -
    • -
    • S
    • -
  • 12:30 OPO
    18:30 LIN
    5Hrs, 00m 1 Stop (FRA)
  • OPOPorto Airport 12:30 - LIN 18:30 5h 1 Stop (FRA) Frankfurt
  • OPOPorto Airport 12:30
    FRAFrankfurt International Airport 17:15
  • FRAFrankfurt International Airport 16:20
    LINMilan Linate Airport 18:30
  • 5h (55m)
  • 1 Stop FRA · Frankfurt 55m
  • Lufthansa (LH 1177)Airbus
    Air Dolomiti (EN 8802)Embraer Emb E90
  • Lufthansa (LH 1177)
    • -
    • -
    • -
    • -
    • F
    • -
    • S
  • 12:45 OPO
    20:05 BGY
    6Hrs, 20m 1 Stop (ALC)
  • OPOPorto Airport 12:45 - BGY 20:05 6h 20m 1 Stop (ALC) Alicante
  • OPOPorto Airport 12:45
    ALCAlicante Airport 18:00
  • ALCAlicante Airport 15:15
    BGYMilan Bergamo/Orio al Serio Airport 20:05
  • 6h 20m (2h 45m)
  • 1 Stop ALC · Alicante 2h 45m
  • Ryanair (FR 2028)Boeing 737 Max 8 Passenger
    Ryanair (FR 3507)Boeing 737 Max 8 Passenger
  • Ryanair (FR 2028)
    • -
    • -
    • -
    • -
    • -
    • S
    • -
No Schedules Sorry, there are no schedules matching your filters. Try removing one. reset
What’s the fastest flight time from Porto to Milan?

The fastest flight time for direct flights from Porto to Milan is 2 hours 20 minutes. Check latest flight schedules & prices on Wego.

What’s the most popular airline flying from Porto to Milan?

The most popular airline flying from Porto to Milan is Ryanair. Find the latest flight deals on Wego.

How far is Milan from Porto?

The flight distance between Porto and Milan is 1515km. Check all available flights on Wego.

When is the earliest and latest flight of the day?

The earliest flight of the day departs at 06:00. The last flight of the day departs at 06:00. See the full list of flight times on Wego.

How many airlines offer direct flights from Porto to Milan?

There are 2 airlines that offer direct flights from Porto to Milan. Find out the list of airlines on Wego.