From Havana you'll need to spend approximately 2 hours on a bus to get to Viñales. My recommendation is that if you're more than one person - negotiate a price with a taxi and go by car. Having a driver who can take you from place to place is a luxury. The driver will also likely be able to help you find a good place to eat or maybe a casa particular where you can spend the night. It's a good idea to spend at least one night out there to get enough time to really enjoy the area. We visited some caves where you can take a boat ride inside. We also visited a tobacco plantation and a place with a great view of the area - great place for photos.