You can book your tickets online before leaving the US and pay with a credit card. Make sure you print out a copy of the ticket. Electronic versions on your phone are not accepted.
I recommend booking tickets a month in advance. I was surprised when I tried to book the tickets 2 weeks in advance and many of the routes were already sold out on the days I wanted to travel.
There are alternatives but they are billed as tours with narration and cost more. You can book once you arrive in Cuba at a travel agency.
Trains are very slow in Cuba and not recommended.
The Viazul station in Habana is a small station. Notice the taxi drivers hanging out, vying to drive customers into town or to other destinations if the bus you wanted is full.
The Viazul station in Habana is located on Avenida 26 across from the Zoologico de la Habana. Taxis cost 15 CUCs between Habana Vieja and the Viazul station.
When you get inside the station, there are a couple of windows where you can buy tickets for the day of travel or for future travel.
If you already have a reservation, go upstairs to the waiting area. There is a desk where you can exchange your printed reservation for a ticket (actually, it's another computer printout). The desk doesn't open until 1 hour prior to your departure time. If you don't have reservations and the bus is sold out, you can wait here and see if there are no-shows. If so, you may be able to purchase a ticket.
The buses are comfortable and air-conditioned. Bring a jacket because it can get very cold. The toilet on the bus was usually not operational but the bus makes several stops for bathroom and food breaks. Bring food and drinks for the ride. Seats are first come-first served, despite a seat assignment on the tickets.
2017 03 08