Add your city or airport in the strip above and we'll compare flying, driving and transit to Puglia — driving wins when it should.
Getting in
Bari Karol Wojtyła Airport: The Ferrotramviaria airport rail link to Bari Centrale is the sensible default: roughly 20 minutes and about €5–6. It is faster and more predictable than an airport taxi in traffic. A local airport bus is cheaper but slower and less useful if you have a fixed train connection.
Brindisi Airport (Salento Airport): Use the STP Brindisi Air&Port Link bus to Brindisi rail station/centre, around 15–20 minutes and roughly €1–2. From there, Trenitalia trains run north toward Bari and south toward Lecce. Take a taxi only for a late arrival, a poorly served accommodation, or a group splitting the fare.
Foggia Gino Lisa Airport: Foggia is useful chiefly for northern Puglia/Gargano, not as a substitute for Bari. Use the local airport-to-Foggia-centre/station connection where its flight timetable aligns; the city is close, but onward transport to Gargano towns is slow and irregular. Check the airport/operator timetable before committing to this route.
Bari Centrale: This is the region’s best rail gateway: high-speed/InterCity trains use the Adriatic corridor, and local/private operators fan out toward Barletta, the airport and inland destinations. It is the right arrival station for Bari, Polignano a Mare, Monopoli and onward regional connections; buy tickets from the actual operator for private lines, not only through a generic journey planner.
Lecce railway station: Lecce is the practical rail terminus for Salento. It has Trenitalia links north via Brindisi and Bari, plus Ferrovie del Sud Est services for parts of the peninsula; expect those local services to be slower and less frequent than the main line.