By air: Asturias Airport (OVD) is about 45 km northwest of the city, near Avilés. ALSA buses connect the airport to Oviedo's bus station in about 40 minutes. There are direct flights from Madrid, Barcelona, London, and a handful of other European cities.
By train: Renfe runs direct AVE and Alvia services from Madrid to Oviedo in about four and a half hours. The station is on Calle Uría, a short walk from the old town. FEVE narrow-gauge trains connect Oviedo to other Asturian towns and along the coast to Santander and Bilbao, though these are slow and scenic rather than practical.
By bus: ALSA operates frequent buses from Madrid (about five hours), León, Gijón, and other northern cities. The bus station is next to the train station on Calle Pepe Cosmen.