The Orio al Serio International Airport (IATA:BGY) is very close to the city (5 km for the train station). Altough BGY is the 4th busiest airport in Italy, it is mainly oriented around low-cost airlines (like ryanair). There are some connections with Munich operated by Lufthansa.
ATB bus no.1 Airport Bus connects the airport to the city (€2.10 per trip, €5.00 for 24h ticket and €7.00 for a 3 days ticket). You must buy the ticket before boarding the bus and tickets must be validated in the bus. Sales point at the airport are the Autostradale ticket office and
the Turismo Bergamo information point in the arrivals lounge, and the ticket machine at the bus-stop. You can find schedules and route maps on the site of ATB the local mass transit authority. Cabs will take about 15 min but are quite expensive given the length of the journey – cost around €15 (€21 after 21:00 in the evening).
Milan has two airports: Linate (IATA:LIN) near to the city and Malpensa (IATA:MXP).
From LIN you can take the bus to Piazza San Babila (urban line 73 or X73), then the metro to the railway station (Centrale or Lambrate), and then the train to Bergamo. The ticket for the bus + metro is €1,50. There are also direct buses form LIN to Central Station operated by STARFLY (www.starfly.net). From MXP you can reach the railway Central Station of Milan by bus (1h, every 10 minutes), operated by Autostradale (www.autostradale.it) and Malpensashuttle (www.malpensashuttle.com), and then take the train to Bergamo. There is also a train (www.malpensaexpress.it/) running from MXP and Milano Centrale (or Milano Cadorna, but then you need to take the metro). There is also a direct bus from MXP to BGY operated by Autostradale and Malpensashuttle.
Milan is about 40 minutes away by train. You can check schedules and fares on the
website of the Italian Railways.
There are regular buses to Milan. You can check schedules and fares on the website of Autostradale. The trip takes approximately one hour, depending on traffic conditions. The bus stop in Bergamo is located near the train station and there is a counter where inquiries can be made. However be warned that the autostrada connecting Bergamo and Milan carries a lot of trucks and gets easily congested – do not therefore rely on the ‘stated’ journey time especially on weekdays. An alternative is to take the bus into Bergamo (see above) and take the train.
If you arrive in MXP, you may consider to rent a car. Bergamo is connected with Milan and Brescia by the A4 highway (the busiest highway in Italy). From MXP you can take the highway A8 to Milan and then the A4 to Bergamo (88 Km and 1h – 2h depending on the traffic).