The calculated distance (air line) between Viñales and La Habana Vieja is approximately 93 miles respectively 150 kilometers.
By car or train, the actual journey to La Habana Vieja is certainly longer, as only the direct route (as the crow flies) between Viñales and La Habana Vieja has been calculated here.
Air line (approximately)
150 kilometers
81 nautical miles