From your Hanoi take a taxi (motorbike will be faster and cheaper) direction Luong Yen station in South East Hanoi. The ride should not cost more than 40k if you are departing from the Old Quarter.
At the train station, go to the counter on the left-hand side when facing the bus station. If you’re lost just ask around, most of the foreigners at this station head to Cat Ba Island anyway. Go to the Hoang Long counter and buy the ticket Hanoi-Haiphong-Cat Ba.
As of October 2014 the ticket cost 220k VND
You have two buses leaving Hanoi, the first at 7:20am and second at 11:20am. Arrived at the train station at least 30 min before. I was there during the shoulder season, but I can imagine that during the peak season, it is the first arrive the first serve.
The bus is clean with air conditioning, nothing fancy, but it does the job.
(1) We left 11:20am sharp from Hanoi. The scenery is not exceptional; it consists of many factories and businesses on the road. Time-to-time the bus pass through the city, thus you’ll be able to see a bit of the Vietnamese lifestyle. Bottom line is if you fall asleep, you don’t miss much.
(2) The bus arrived at 2:20pm at Haiphong. There we left the bus with our luggage and after 20 min waiting at the station we went on to another bus that headed to the Haiphong Boat station. At that stop you can buy some food and there is also a bathroom.
(3) From Haiphong boat station, we took the speedboat to Cat Ba boat station. The journey is about 30 to 45 min; Fyi better not having motion sickness.
(4) From Cat Ba boat station, a bus brought us to Cat Ba town the final destination. There you’re on your own but expect taxi drivers/hotel managers to chase you as soon as you get off from the bus to offers their respective services. The trip, all in all, takes about 4.5 hours.
Have a safe trip