Fare Guide

Estimated lowest fares found within 7 days

Cheapest Airline Ryanair

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

  • Ryanair Ryanair
  • TAP Air Portugal TAP Air Portugal
  • EasyJet EasyJet
  • Vueling Airlines Vueling Airlines
  • Lufthansa Lufthansa
  • Air Europa Air Europa
  • KLM KLM
  • Iberia Iberia
  • Swiss Swiss
  • Transavia.com France Transavia.com France
Cheapest Month October

Travel Period: July 2024 - June 2025

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

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

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

  • Sun Sunday
  • Mon Monday
  • Tue Tuesday
  • Wed Wednesday
  • Thu Thursday
  • Fri Friday
  • Sat Saturday
Cheapest Time 7am

The cheapest time of the day to fly from Porto to Milan is in the morning.

Early Morning 12:01am - 06:00am
Morning 6:01am - 12:00pm
Afternoon 12:01pm - 6:00pm
Evening 6:01pm to 12:00am
12am
6am
12pm
6pm

Flight Schedules

Last Updated: Sun, 2 Jun, 2024

  • Depart Earliest
    • Earliest
    • Latest
  • Arrive
    • Earliest
    • Latest
  • Airline Filter by Airline
    All
  • Total Duration
    • Shortest
    • Longest
  • Stopover
    All
  • Availability
    • M
    • T
    • W
    • T
    • F
    • S
    • S
  • 06:20 - 09:50
    OPO - BGY
  • 06:20 (OPO)Porto Airport
  • 09:50 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4041)Boeing 737 800
  • 2h 30m
  • Direct
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • Boeing 737 800
  • 07:15 - 10:45
    OPO - BGY
  • 07:15 (OPO)Porto Airport
  • 10:45 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4041)Boeing 737 800
  • 2h 30m
  • Direct
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 800
  • 09:10 - 12:40
    OPO - BGY
  • 09:10 (OPO)Porto Airport
  • 12:40 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4041)Boeing 737 800
  • 2h 30m
  • Direct
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • Boeing 737 800
  • 09:35 - 13:05
    OPO - BGY
  • 09:35 (OPO)Porto Airport
  • 13:05 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4041)Boeing 737 800
  • 2h 30m
  • Direct
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 800
  • 12:10 - 15:40
    OPO - BGY
  • 12:10 (OPO)Porto Airport
  • 15:40 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4041)Boeing 737 Max 8 Passenger
  • 2h 30m
  • Direct
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • Boeing 737 Max 8 Passenger
  • 13:15 - 16:45
    OPO - BGY
  • 13:15 (OPO)Porto Airport
  • 16:45 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4637)Boeing 737 800
  • 2h 30m
  • Direct
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • Boeing 737 800
  • 16:05 - 19:30
    OPO - MXP
  • 16:05 (OPO)Porto Airport
  • 19:30 (MXP)Milan Malpensa Airport
  • Wizz Air Malta (W4 6336)Airbus A321 Neo
  • 2h 25m
  • Direct
    • M
    • -
    • -
    • -
    • F
    • -
    • -
  • Airbus A321 Neo
  • 16:15 - 19:45
    OPO - BGY
  • 16:15 (OPO)Porto Airport
  • 19:45 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4637)Boeing 737 Max 8 Passenger
  • 2h 30m
  • Direct
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • Boeing 737 Max 8 Passenger
  • 16:55 - 20:30
    OPO - MXP
  • 16:55 (OPO)Porto Airport
  • 20:30 (MXP)Milan Malpensa Airport
  • EasyJet (U2 7781)Airbus
  • 2h 35m
  • Direct
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • Airbus
  • 16:55 - 20:25
    OPO - BGY
  • 16:55 (OPO)Porto Airport
  • 20:25 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4041)Boeing 737 800
  • 2h 30m
  • Direct
    • -
    • -
    • W
    • -
    • -
    • -
    • -
  • Boeing 737 800
  • 17:10 - 20:45
    OPO - MXP
  • 17:10 (OPO)Porto Airport
  • 20:45 (MXP)Milan Malpensa Airport
  • EasyJet (U2 7781)Airbus
  • 2h 35m
  • Direct
    • -
    • T
    • W
    • -
    • -
    • -
    • -
  • Airbus
  • 17:15 - 20:50
    OPO - MXP
  • 17:15 (OPO)Porto Airport
  • 20:50 (MXP)Milan Malpensa Airport
  • EasyJet (U2 7781)Airbus
  • 2h 35m
  • Direct
    • -
    • -
    • -
    • -
    • F
    • -
    • S
  • Airbus
  • 17:30 - 21:05
    OPO - MXP
  • 17:30 (OPO)Porto Airport
  • 21:05 (MXP)Milan Malpensa Airport
  • EasyJet (U2 7781)Airbus
  • 2h 35m
  • Direct
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • Airbus
  • 19:45 - 23:15
    OPO - BGY
  • 19:45 (OPO)Porto Airport
  • 23:15 (BGY)Milan Bergamo/Orio al Serio Airport
  • Ryanair (FR 4637)Boeing 737 800
  • 2h 30m
  • Direct
    • M
    • -
    • -
    • -
    • -
    • -
    • -
  • Boeing 737 800

Connecting Flights

  • 05:00 - 08:30
    OPO - AMS
    10:20 - 12:00
    AMS - MXP
  • 05:00 (OPO)Porto Airport
    10:20 (AMS)Amsterdam Airport
  • 08:30 (AMS)Amsterdam Airport
    12:00 (MXP)Milan Malpensa Airport
  • KLM (KL 1570)Boeing 737 800
    KLM (KL 1621)Boeing 737 800
  • 6h (1h 50m)
  • AMS Amsterdam 1h 50m
    • M
    • T
    • W
    • T
    • F
    • -
    • -
  • 05:00 - 08:30
    OPO - AMS
    10:20 - 12:00
    AMS - MXP
  • 05:00 (OPO)Porto Airport
    10:20 (AMS)Amsterdam Airport
  • 08:30 (AMS)Amsterdam Airport
    12:00 (MXP)Milan Malpensa Airport
  • KLM (KL 1570)Boeing 737 800
    KLM (KL 1621)Embraer Emb E90
  • 6h (1h 50m)
  • AMS Amsterdam 1h 50m
    • -
    • -
    • -
    • -
    • -
    • S
    • S
  • 05:05 - 06:05
    OPO - LIS
    07:15 - 10:55
    LIS - MXP
  • 05:05 (OPO)Porto Airport
    07:15 (LIS)Lisbon Airport
  • 06:05 (LIS)Lisbon Airport
    10:55 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1937)Airbus
    TAP Air Portugal (TP 822)Airbus
  • 4h 50m (1h 10m)
  • LIS Lisbon 1h 10m
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 05:10 - 06:10
    OPO - LIS
    07:15 - 10:55
    LIS - MXP
  • 05:10 (OPO)Porto Airport
    07:15 (LIS)Lisbon Airport
  • 06:10 (LIS)Lisbon Airport
    10:55 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1937)Airbus
    TAP Air Portugal (TP 822)Airbus A320 Neo
  • 4h 45m (1h 05m)
  • LIS Lisbon 1h 05m
    • M
    • T
    • -
    • -
    • F
    • -
    • -
  • 06:00 - 09:40
    OPO - FRA
    10:50 - 12:00
    FRA - LIN
  • 06:00 (OPO)Porto Airport
    10:50 (FRA)Frankfurt International Airport
  • 09:40 (FRA)Frankfurt International Airport
    12:00 (LIN)Milan Linate Airport
  • Lufthansa (LH 1181)Airbus A321 Neo
    Lufthansa (LH 272)Airbus
  • 5h (1h 10m)
  • FRA Frankfurt 1h 10m
    • M
    • T
    • -
    • -
    • -
    • -
    • -
  • 06:00 - 09:40
    OPO - FRA
    10:50 - 12:00
    FRA - LIN
  • 06:00 (OPO)Porto Airport
    10:50 (FRA)Frankfurt International Airport
  • 09:40 (FRA)Frankfurt International Airport
    12:00 (LIN)Milan Linate Airport
  • Lufthansa (LH 1181)Airbus A321 Neo
    Lufthansa (LH 272)Embraer Emb E90
  • 5h (1h 10m)
  • FRA Frankfurt 1h 10m
    • -
    • -
    • -
    • T
    • -
    • S
    • -
  • 06:00 - 09:40
    OPO - FRA
    10:50 - 12:00
    FRA - LIN
  • 06:00 (OPO)Porto Airport
    10:50 (FRA)Frankfurt International Airport
  • 09:40 (FRA)Frankfurt International Airport
    12:00 (LIN)Milan Linate Airport
  • Lufthansa (LH 1181)Airbus A321 Neo
    Lufthansa (LH 272)Airbus Industrie A320 Sharklets
  • 5h (1h 10m)
  • FRA Frankfurt 1h 10m
    • -
    • -
    • W
    • -
    • F
    • -
    • -
  • 07:35 - 09:45
    OPO - MAD
    13:30 - 15:35
    MAD - MXP
  • 07:35 (OPO)Porto Airport
    13:30 (MAD)Madrid Barajas Airport
  • 09:45 (MAD)Madrid Barajas Airport
    15:35 (MXP)Milan Malpensa Airport
  • Air Europa (UX 1144)Boeing 737 800
    Air Europa (UX 1063)Boeing 737 800
  • 7h (3h 45m)
  • MAD Madrid 3h 45m
    • -
    • T
    • -
    • T
    • -
    • S
    • -
  • 08:20 - 11:40
    OPO - LUX
    14:35 - 15:50
    LUX - MXP
  • 08:20 (OPO)Porto Airport
    14:35 (LUX)Luxembourg Airport
  • 11:40 (LUX)Luxembourg Airport
    15:50 (MXP)Milan Malpensa Airport
  • Luxair (LG 3770)Boeing 737 700
    Luxair (LG 6995)Dehavilland Dash 8 400
  • 6h 30m (2h 55m)
  • LUX Luxembourg 2h 55m
    • -
    • -
    • W
    • -
    • -
    • -
    • -
  • 08:20 - 11:40
    OPO - LUX
    14:20 - 15:35
    LUX - MXP
  • 08:20 (OPO)Porto Airport
    14:20 (LUX)Luxembourg Airport
  • 11:40 (LUX)Luxembourg Airport
    15:35 (MXP)Milan Malpensa Airport
  • Luxair (LG 3770)Boeing 737 Max 8 Passenger
    Luxair (LG 6995)Dehavilland Dash 8 400
  • 6h 15m (2h 40m)
  • LUX Luxembourg 2h 40m
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • 08:20 - 11:40
    OPO - LUX
    14:20 - 15:35
    LUX - MXP
  • 08:20 (OPO)Porto Airport
    14:20 (LUX)Luxembourg Airport
  • 11:40 (LUX)Luxembourg Airport
    15:35 (MXP)Milan Malpensa Airport
  • Luxair (LG 3770)Boeing 737 700
    Luxair (LG 6995)Dehavilland Dash 8 400
  • 6h 15m (2h 40m)
  • LUX Luxembourg 2h 40m
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 08:55 - 09:55
    OPO - LIS
    12:45 - 16:25
    LIS - MXP
  • 08:55 (OPO)Porto Airport
    12:45 (LIS)Lisbon Airport
  • 09:55 (LIS)Lisbon Airport
    16:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1921)Embraer Emb E90
    TAP Air Portugal (TP 824)Airbus A321 Neo
  • 6h 30m (2h 50m)
  • LIS Lisbon 2h 50m
    • -
    • -
    • -
    • T
    • -
    • -
    • S
  • 08:55 - 09:55
    OPO - LIS
    12:45 - 16:25
    LIS - MXP
  • 08:55 (OPO)Porto Airport
    12:45 (LIS)Lisbon Airport
  • 09:55 (LIS)Lisbon Airport
    16:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1921)Embraer Emb E90
    TAP Air Portugal (TP 824)Airbus
  • 6h 30m (2h 50m)
  • LIS Lisbon 2h 50m
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 10:00 - 11:00
    OPO - LIS
    12:45 - 16:25
    LIS - MXP
  • 10:00 (OPO)Porto Airport
    12:45 (LIS)Lisbon Airport
  • 11:00 (LIS)Lisbon Airport
    16:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1923)Airbus
    TAP Air Portugal (TP 824)Airbus A321 Neo
  • 5h 25m (1h 45m)
  • LIS Lisbon 1h 45m
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 10:00 - 11:00
    OPO - LIS
    12:40 - 16:20
    LIS - MXP
  • 10:00 (OPO)Porto Airport
    12:40 (LIS)Lisbon Airport
  • 11:00 (LIS)Lisbon Airport
    16:20 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1923)Airbus
    TAP Air Portugal (TP 824)Airbus A321 Neo
  • 5h 20m (1h 40m)
  • LIS Lisbon 1h 40m
    • -
    • -
    • -
    • -
    • F
    • -
    • -
  • 10:00 - 11:00
    OPO - LIS
    12:45 - 16:25
    LIS - MXP
  • 10:00 (OPO)Porto Airport
    12:45 (LIS)Lisbon Airport
  • 11:00 (LIS)Lisbon Airport
    16:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1923)Airbus A320 Neo
    TAP Air Portugal (TP 824)Airbus
  • 5h 25m (1h 45m)
  • LIS Lisbon 1h 45m
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 11:15 - 14:55
    OPO - ZRH
    17:30 - 18:25
    ZRH - MXP
  • 11:15 (OPO)Porto Airport
    17:30 (ZRH)Zurich Airport
  • 14:55 (ZRH)Zurich Airport
    18:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 920)Airbus
    Swiss (LX 1622)Airbus Industrie A321 Sharklets
  • 6h 10m (2h 35m)
  • ZRH Zurich 2h 35m
    • -
    • -
    • -
    • T
    • -
    • -
    • -
  • 11:15 - 14:55
    OPO - ZRH
    17:30 - 18:25
    ZRH - MXP
  • 11:15 (OPO)Porto Airport
    17:30 (ZRH)Zurich Airport
  • 14:55 (ZRH)Zurich Airport
    18:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 920)Airbus
    Swiss (LX 1622)Airbus A320 Neo
  • 6h 10m (2h 35m)
  • ZRH Zurich 2h 35m
    • M
    • -
    • -
    • -
    • F
    • -
    • -
  • 11:15 - 14:55
    OPO - ZRH
    17:30 - 18:25
    ZRH - MXP
  • 11:15 (OPO)Porto Airport
    17:30 (ZRH)Zurich Airport
  • 14:55 (ZRH)Zurich Airport
    18:25 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 920)Airbus
    Swiss (LX 1622)Airbus A321 Neo
  • 6h 10m (2h 35m)
  • ZRH Zurich 2h 35m
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 11:25 - 15:05
    OPO - AMS
    17:00 - 18:40
    AMS - MXP
  • 11:25 (OPO)Porto Airport
    17:00 (AMS)Amsterdam Airport
  • 15:05 (AMS)Amsterdam Airport
    18:40 (MXP)Milan Malpensa Airport
  • KLM (KL 1572)Boeing 737 800
    KLM (KL 1623)Boeing 737 700
  • 6h 15m (1h 55m)
  • AMS Amsterdam 1h 55m
    • M
    • -
    • W
    • T
    • F
    • -
    • -
  • 11:25 - 15:05
    OPO - AMS
    17:00 - 18:40
    AMS - LIN
  • 11:25 (OPO)Porto Airport
    17:00 (AMS)Amsterdam Airport
  • 15:05 (AMS)Amsterdam Airport
    18:40 (LIN)Milan Linate Airport
  • KLM (KL 1572)Boeing 737 800
    KLM (KL 1617)Boeing 737 800
  • 6h 15m (1h 55m)
  • AMS Amsterdam 1h 55m
    • -
    • -
    • -
    • -
    • -
    • S
    • -
  • 11:25 - 15:05
    OPO - AMS
    17:20 - 19:00
    AMS - LIN
  • 11:25 (OPO)Porto Airport
    17:20 (AMS)Amsterdam Airport
  • 15:05 (AMS)Amsterdam Airport
    19:00 (LIN)Milan Linate Airport
  • KLM (KL 1572)Boeing 737 800
    KLM (KL 1617)Embraer 195 E2
  • 6h 35m (2h 15m)
  • AMS Amsterdam 2h 15m
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 12:25 - 14:45
    OPO - MAD
    17:25 - 19:35
    MAD - LIN
  • 12:25 (OPO)Porto Airport
    17:25 (MAD)Madrid Barajas Airport
  • 14:45 (MAD)Madrid Barajas Airport
    19:35 (LIN)Milan Linate Airport
  • Iberia (IB 3093)Airbus
    Iberia (IB 3254)Airbus
  • 6h 10m (2h 40m)
  • MAD Madrid 2h 40m
    • -
    • T
    • W
    • -
    • F
    • -
    • -
  • 12:55 - 16:15
    OPO - BRU
    19:25 - 21:00
    BRU - MXP
  • 12:55 (OPO)Porto Airport
    19:25 (BRU)Brussels Airport
  • 16:15 (BRU)Brussels Airport
    21:00 (MXP)Milan Malpensa Airport
  • Brussels Airlines (SN 3812)Airbus
    Brussels Airlines (SN 3159)Airbus
  • 7h 05m (3h 10m)
  • BRU Brussels 3h 10m
    • M
    • T
    • W
    • -
    • F
    • -
    • S
  • 13:25 - 17:40
    OPO - VIE
    18:25 - 19:50
    VIE - MXP
  • 13:25 (OPO)Porto Airport
    18:25 (VIE)Vienna Airport
  • 17:40 (VIE)Vienna Airport
    19:50 (MXP)Milan Malpensa Airport
  • Austrian Airlines (OS 446)Airbus
    Austrian Airlines (OS 515)Airbus
  • 5h 25m (45m)
  • VIE Vienna 45m
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 15:15 - 18:40
    OPO - LUX
    19:30 - 20:45
    LUX - MXP
  • 15:15 (OPO)Porto Airport
    19:30 (LUX)Luxembourg Airport
  • 18:40 (LUX)Luxembourg Airport
    20:45 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 686)Airbus
    Luxair (LG 6997)Dehavilland Dash 8 400
  • 4h 30m (50m)
  • LUX Luxembourg 50m
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 16:20 - 19:35
    OPO - CDG
    20:55 - 22:25
    CDG - LIN
  • 16:20 (OPO)Porto Airport
    20:55 (CDG)Paris Charles de Gaulle Airport
  • 19:35 (CDG)Paris Charles de Gaulle Airport
    22:25 (LIN)Milan Linate Airport
  • Air France (AF 1529)Airbus A220 300
    Air France (AF 1732)Airbus A220 300
  • 5h 05m (1h 20m)
  • CDG Paris 1h 20m
    • M
    • T
    • W
    • T
    • F
    • S
    • S
  • 16:35 - 18:55
    OPO - MAD
    20:50 - 23:00
    MAD - LIN
  • 16:35 (OPO)Porto Airport
    20:50 (MAD)Madrid Barajas Airport
  • 18:55 (MAD)Madrid Barajas Airport
    23:00 (LIN)Milan Linate Airport
  • Iberia (IB 8665)Canadair Regional
    Iberia (IB 3256)Airbus
  • 5h 25m (1h 55m)
  • MAD Madrid 1h 55m
    • M
    • T
    • W
    • T
    • F
    • S
    • S
  • 18:00 - 19:00+ 1
    OPO - LIS
    20:55 - 00:35+ 1
    LIS - MXP
  • 18:00 (OPO)Porto Airport
    20:55 (LIS)Lisbon Airport
  • 19:00 (LIS)Lisbon Airport + 1
    00:35 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1931)Embraer Emb E90
    TAP Air Portugal (TP 828)Airbus
  • 5h 35m (1h 55m)
  • LIS Lisbon 1h 55m
    • -
    • T
    • -
    • -
    • -
    • -
    • -
  • 18:00 - 19:00+ 1
    OPO - LIS
    20:55 - 00:35+ 1
    LIS - MXP
  • 18:00 (OPO)Porto Airport
    20:55 (LIS)Lisbon Airport
  • 19:00 (LIS)Lisbon Airport + 1
    00:35 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1931)Airbus
    TAP Air Portugal (TP 828)Airbus
  • 5h 35m (1h 55m)
  • LIS Lisbon 1h 55m
    • -
    • -
    • -
    • -
    • -
    • -
    • S
  • 18:00 - 19:00+ 1
    OPO - LIS
    20:55 - 00:35+ 1
    LIS - MXP
  • 18:00 (OPO)Porto Airport
    20:55 (LIS)Lisbon Airport
  • 19:00 (LIS)Lisbon Airport + 1
    00:35 (MXP)Milan Malpensa Airport
  • TAP Air Portugal (TP 1931)Embraer Emb E90
    TAP Air Portugal (TP 828)Airbus
  • 5h 35m (1h 55m)
  • LIS Lisbon 1h 55m
    • -
    • -
    • -
    • T
    • -
    • -
    • -
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 25 minutes. Check latest flight schedules & prices 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 05:00. The last flight of the day departs at 05:00. See the full list of flight times on Wego.

How many airlines offer direct flights from Porto to Milan?

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