Milan has three airports: Malpensa [MXP],  Linate [LIN], and Orio al Serio (AKA Bergamo) [BGY]. 

Malpensa is the biggest airport in the Milan area and is located approx. 50 km NW of Milan, just a few km. South of Lake Maggiore. It has two terminals. T1 is used by all airlines, except Easyjet, which uses T2.  To travel between Malpensa terminal 1 and Malpensa terminal 2, there is a free shuttle-bus service in operation 24 hours a day, with departures every 7 minutes (every 30 minutes at night, from 1 to 5.30AM). The official airport website is http://www.milanomalpensa-airport.com/en

Linate is smaller, a true city airport, just a few km East of the city center. Its official website is http://www.milanolinate-airport.com/en.

Orio al Serio (http://www.sacbo.it/Airpor/portalProc...) is in fact located near the town of Bergamo, some 50 km East of Milan.

 

 From Malpensa airport to Milan: 

- by train to Milan's Cadorna station:  train leaves roughly every 30 minutes from the airport train station, located next to the Terminal 1 (T1).   The ride takes only 29 minutes (non-stop trains) or 36 minutes (in case of trains making stops en route).  The cost is €12 one-way (€18 roundtrip, valid 30 days), half price for children under 14.  Tickets can be bought on-line (Malpensa Express homepage) or at self-service machines or ticket desk. See complete schedule at http://www.trenord.it/media/557100/q_....  Cadorna is a commuter station,  located near the Castello Sforzesco.  It is very convenient for the city center (and the Last Supper!), however it is not connected with the Trenitalia network for onward travel to other cities.

- by train to Milan's Garibaldi and Central stations: The “Malpensa Express” also has a separate service to Milan's Central station, in addition to the above. There are (roughly) half-hourly departures, stopping en route also at Milan's Bovisa and Porta Garibaldi stations.  Transit time varies between 43 and 55 minutes, depending on the number of stops en route.  Schedules at http://www.trenord.it/media/557100/q_....  Tickets cost €12 one-way (€18 roundtrip, valid 30 days), half price for children under 14.  Tickets can be bought on-line (Malpensa Express homepage) or at self-service machines or ticket windows.

- by train to other stations in Milan and suburban area:  take the Malpensa Express as above (either one going to Cadorna or Central station) -- just make sure it stops at Milan's Bovisa station (not all of them do).  Get off at Milano Nord Bovisa.  Change on an 'S' ( i.e. suburban) train to a lot of stations within Milan, including Repubblica (convenient for several major hotels) and Porta Venezia (handy for Corso Buenos Aires shopping district).  There is an 'S'  train roughly every 10 minutes. A map of suburban trains & subway connections within Milan can be found here: connections. The connection by train within Milan city limits is included in the Malpensa express ticket.

- by bus to Milan's central train station: There are two competing shuttle bus services.  All buses serve both T1 and T2 (making this the default choice for Easyjet passengers, as this airline is the only one using T2).  Tickets cost 10 euro one way (or 16 euro roundtrip) on both services.  Note that buses ride on a busy highway , and can easily get stuck in traffic at rush hours. Bus schedules are available at Malpensa shuttle and http://www.autostradale.it/pdf/Orari%...  Malpensa shuttle has free wifi on-board.

- by taxi: As of July 2011, Milan taxis apply a flat, one-way  €90  fare from Malpensa to any destination within Milan city center.

From Linate airport to Milan:

- by ATM city bus to Milan's city center: take the #73 city bus (schedule) or the faster 'express' bus service #X73 (not running on Saturday and Sunday, schedule) to the San Babila metro stop (near Duomo).  The former line makes a lot of stops, while the latter only stops only once (at Piazza Tricolore) and follows a different, faster route. In either case, the bus ticket costs €1.50 (90-minute validity and usable for a single journey on the underground or rail network) and can be bought at the  self-service machine at the bus stop or inside the airport at newsstands or tobacconist’s.  Children travel free of charge on the entire ATM network when accompanied by an adult in possession of a valid ticket or travel card (children must be in possession of ID as proof of age).

- by coach to Milan's central train station: there are two services: StarFly and AirBus http://www.atm.it/it/AltriServizi/Tra... 

- by taxi: Taxis are widely available. Rides to the city center are metered, however flat fares apply to Rho fairgrounds (€50) and Malpensa airport (€100).

From Orio al Serio airport to Milan:

Orio al Serio is located near Bergamo, East of Milan. It is the preferred base of low-cost airlines. There is no direct train connection with Milan, but there are three separate bus services to and from Milan’s Stazione Centrale (more info on the airport’s website: http://www.sacbo.it), with some buses stopping en route at Milan's Lambrate train station.  Buses can get stuck on the highway, so allow plenty of time (at least 90 minutes), especially upon departure.  Alternatively, it is possible to take a local bus from the airport to Bergamo town center, hence continue to Milan by train ( http://www.ferroviedellostato.it/home...) or bus ( http://www.nordesttrasporti.it.).

Public transport between airports:

There is a direct bus connection between Malpensa and Linate airports: http://www.malpensashuttle.it/carico/...

www.orioshuttle.com operates a direct bus service between Malpensa and Orio al Serio (Bergamo) airports.

No direct connection exists between Orio al Serio and Linate airport, therefore a change at Milan's central station is required.

Arriving in Milan by train: Getting to Milan by train is convenient as the city has direct links with all major cities in Italy (Venice, Turin, Genoa, Florence, Rome, Naples, etc.), as well as several destinations in Western Europe (Paris, Barcelona,  Geneva, and more).

Most of the train arrive at (and depart from) the Stazione Centrale (central station), which is a monument in itself.    Two underground lines (green and yellow), as well as several tram and bus lines, link the station to many main points of interest in Milan. Many tourist-class hotels can be found in the station area.

Some trains use (or stop at) other train stations, such as Porta Garibaldi, Rogoredo, Lambrate, or Porta Genova. All of these are connected with the underground network, providing easy access to any Milan address.  In particular, NTV's ItaloTreno, the private high speed train operator, uses Garibaldi and Rogoredo Stations.  Also the French railways' TGVs to and from Paris stop at Porta Garibaldi station.

Arriving in Milan by coach/bus: Milan also has a large coach/bus station, located next to the Lampugnano subway stop (red line).  There are many  connections to nearby towns, as well as long distance domestic and international coach lines (although long distance bus travel is not as common in Italy as it is in the US or UK).  Some of the Italian cities that can be reached from Milan by bus include Bergamo, Turin, Ivrea, Biella, Aosta/Courmayeur, Cortina, Florence, Siena, Perugia, Rome (via Siena), Naples, Salerno,  Bari, Cosenza, Messina, Catania, and others. There also regular bus links with a lot of European cities (see www.eurolines.com).

Driving to Milan: Being the industrial/financial heart of Italy, Milan is well connected to the rest of the country by road (mainly toll highways), too.  Traffic can be hectic, however: be aware that many Italian drivers tend to be aggressive, which makes it difficult for foreigners to drive safely. Besides, finding a parking place requires a certain amount of patience. There are convenient parking lots at many underground  stations (good to use if you come from the highway and plan to stay in Milan for 1 or 2 days) - http://www.atm-mi.it/en/ViaggiaConNoi....

In January 2012, Milan has implemented a London-style 'congestion charge' system, called 'area C'.  All private cars entering the inner city area are subject to paying a 5 euro toll.   Information is available in English at http://www.comune.milano.it/portale/w...

If you do choose to drive into Milan, you’ll find several private-operated parking lots, with hourly rates ranging approx.  from 2.5 to 4 euro. There are also several 'park&ride' parking lots near suburban metro stops.  In most of central and suburban Milan, curbside parking is available on a 'pay and display' basis -- look for spaces marked by blue lines. Do not use spaces within yellow lines, which are reserved to registered residents.  Check the hourly rate on the signs on the sidewalk. The hourly rate depends on how far you are from the center. More information at http://www.atm-mi.it/en/ViaggiaConNoi...

More info about parking, public transport and taxis here: getting around.

Luggage storage:  There is only one luggage storage room in Milan (apart from the ones at the airports). It is located inside Milano Centrale station, on the ground floor, next to the exit on the piazza Luigi di Savoia). It's open every day from 6.00 am till midnight. Charges: 5,00 € the first 5 hours; 0,70 € /hour from 6th to 12th hour; 0,30 € /hour from 13th hour on. There is a storage limit of 20kg per piece of luggage. There are no coin-operated lockers.