Puglia is closer than you think. Rome to Bari is 4 hours by fast train, and from Bari the whole region opens up. The real question isn't how to get there โ it's where in Puglia you're headed, because that changes everything.
"Puglia" is a big region โ 400km from the Gargano to Santa Maria di Leuca. Your destination within Puglia determines your transport. Going to Bari or Lecce? Train. Going to the trulli countryside? You'll need a car once you arrive. Going to the Gargano coast? Fly or drive.
The Frecciarossa runs Roma Termini โ Bari Centrale direct, multiple times daily. Trenitalia and Italo compete, so prices start at โฌ19 if you book 2โ3 weeks ahead. Lecce adds another hour (5h total). The 8:30am departure gets you to Bari by 12:30 โ perfect for a lunch of focaccia barese.
A1 south to Caserta, then A16 across the Apennines to Canosa, then A14 south to Bari. Total tolls run โฌ35โ45. A car is essential for the Valle d'Itria (Alberobello, Locorotondo, Ostuni) โ buses between trulli towns are infrequent.
Ryanair and Wizz Air fly to Bari and Brindisi. But add airport time and transfers: door-to-door you're looking at 3.5โ4 hours โ barely faster than the train. Makes sense only for cheap fares to Brindisi if heading to Salento.
FlixBus and Marino run Rome Tiburtina โ Bari daily. Cheapest option but slowest. The buses are comfortable with WiFi and plugs.
From Bari Centrale, regional trains reach Polignano a Mare (30 min), Monopoli (40 min), and Lecce (1.5h). For Alberobello, the FSE train exists but it's slow โ a car is better. For the Gargano, take the Ferrovie del Gargano bus from Foggia.
Train to Bari, then rent a car if you're exploring the countryside. If you're just doing Bari + Lecce + coast towns on the main line, the train handles everything.