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

Malpensa (http://www.milanomalpensa-airport.com/en) 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, a free shuttle bus operates 24 hours a day, with departures every 7 minutes (every 30 minutes from 1 to 5.30AM).

Linate (www.milanolinate-airport.com/en) is smaller, a true city airport, just a few km East of the city center. 

Orio al Serio (http://www.orioaeroporto.it/en/), also known as Milan/Bergamo,  is in fact located near the town of Bergamo, some 50 km East of Milan.

From Malpensa airport to Milan: 

- by train: The Malpensa Express train runs two separate services: one goes from the airport to Milan's Cadorna station (departing from the airport train station, located next to the Terminal 1 (T1), every 30 minutes, transit time 37 minutes), and another runs to Milan's Garibaldi and Centrale train stations (departures every 30 minutes, transit time 41 minutes to Garibaldi and 52 minutes to Centrale).   

For both services, the cost is €12 one-way (€18 round-trip, valid 30 days if purchased on line, otherwise valid the same day only), half price for children under 14.  Tickets can be bought on-line (Malpensa Express homepage) or at self-service machines or from the ticket window. See complete schedule here.   

Note:

1. 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. It has no luggage storage facilities.

2. Garibaldi station has connections to lots of regional and suburban destinations. French TGVs as well as some Trenitalia's high speed FrecciaRossa trains depart from here. There is no luggage storage facility at Garibaldi station.

3. Centrale is the biggest of Milan's stations, and has connections to almost everywhere in Italy. Centrale has a manned luggage storage room, located on the ground floor, next to the exit on the piazza Luigi di Savoia. It is open every day from 6AM until 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.

4. One can use the Malpensa Express also to reach a number of stations within central Milan, including Repubblica (convenient for several major hotels) and Porta Venezia (handy for Corso Buenos Aires shopping district), on the same ticket.  To do so, take ANY Malpensa Express trains, get off at Milano Nord Bovisa, and change to an 'S' (suburban) train. 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 three 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 between 8 and 10 euro one way (roundtrip tickets are also available).  Note that buses ride on a busy highway, and can easily get stuck in traffic at rush hours. 

- by taxi: As of January 2015, Milan taxis apply a flat, one-way  €95  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) to the San Babila metro stop (near Duomo). The bus ticket costs €1.50 (90-minute validity on surface transport, also  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 website), 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 or #Z301 bus.

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. Centrale is the only station with a manned luggage storage room, located on the ground floor, next to the exit on the piazza Luigi di Savoia. It is open every day from 6AM until 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.

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,  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. There also regular bus links with a lot of European cities (see www.eurolines.comwww.flixbus.comwww.megabus.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/wps/porta...

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.