This is not Italy's fastest-looking itinerary; that is why it is workable. Milan, Bari and Bologna sit on a national rail spine, but Milan to Bari and Bari to Bologna are substantial journeys. Treat each as a transfer day with one modest evening plan, not as a chance to bolt on another museum or a famous town. In exchange, three bases let the traveller feel three distinctly different urban rhythms: Milan's reservation-led art and design centre, Bari's Adriatic old town with a wider Puglian day-trip reach, and Bologna's dense porticoed finale.
The night split is intentional. Milan receives two nights because the Last Supper is capacity-controlled and the Duomo complex has several ticketed elements; an arrival evening plus one complete sightseeing day is a clean first act. Bari receives four because it is both a real city and the route's only regional platform. A traveller can give Bari Vecchia its own day, use one day for Polignano a Mare or another rail-friendly coast choice, and still have a slower morning by the lungomare. Bologna receives three nights because it is compact enough to reward walking but rich enough that a single late arrival would reduce it to a dinner stop.
The decisive trade-off is geographic. Puglia is far south-east of Milan, and Bologna is then a return north. That detour makes sense for someone who wants a Puglian chapter rather than a neat line on a map. It does not make sense for a first-time visitor whose non-negotiables are Florence, Rome and Venice; the published classic rail routes serve that brief better. Nor is this a beach-week promise. Bari is the practical base for a coastal day, but the route does not claim to cover Salento, Gargano, Matera and the Itria Valley in the same ten days.
Book in the order that protects choice. Start with the Last Supper if it matters: the Milan tourism office notes mandatory advance booking and timed entry. Next check the live train planner for the two long legs; the Frecciarossa network lists Milan, Bologna and Bari on its Italian connections, but the responsible operator is the only reliable source for your actual date. Then choose rooms. Near Milano Centrale is sensible for a short first stay if you can accept a less atmospheric evening address. In Bari, choose between Bari Vecchia's lanes and the Murat grid around Bari Centrale. In Bologna, a walkable station-to-centre route matters more than trying to sleep directly under the busiest evening porticoes.