The only way to get to Cat Ba is by boat. If travelling from Hanoi your best bet is to buy a bus-boat-bus ticket from Luong Yen bus station (240,000 dong). Hoang Long is the main operator and has buses leaving Hanoi at 05:20, 07:20 and 11:20. The bus to Haiphong city takes 2.5 to 3 hours then you'll have a 25-minute ride on a hydrofoil followed by an hour in a bus at the other end. It's generally painless. If you're arriving from elsewhere and making your own way to the harbour, the hydrofoil costs 150,000 dong and you might be able to hitch a ride on the bus into Cat Ba town upon arrival at Phu Long pier. Otherwise you'll have to negotiate with taxis or motorbike taxis.
Most hotels and tour operators on Cat Ba will be able to book you on a bus-boat-bus back for the same price. They run from 06:00 until 16:00 on the return journey.
Another option—only really advisable if you're staying in Ha Long City—is to get the ferry from Tuan Chau island. Tuan Chau is the departure point for some of the cruise operators, such as Bhaya, and you will see signs for it as you head along the highway into Ha Long City. The ferry takes 45 minutes, costs 80,000 dong per passenger (100,000 dong with a scooter) and docks at Gia Luan pier.
Apparently a bus meets each ferry to go into Cat Ba town but if it doesn't show you should be able to take a taxi—one of the ladies selling snacks at the pier will be able to help. Heading back the bus from Cat Ba town leaves at 08:00 from the square by the pier, or you can try and hitch a ride on a tourist bus. From May to end of September ferries depart Tuan Chau at 07:30, 09:00, 11.30, 13:30 and 15:00 and return at 09:00, 11:30, 13:00, 15:00, 16:00. Outside of these times they run less frequently: 07:30, 11:30 and 15:00 from Tuan Chau and 09:00, 13:00 and 16:00 from Cat Ba.
Alternatively, combine getting from A to B with a cruise of the bay and book onto a tourist boat from Ha Long City. The staff at the ticket office at Bai Chay pier informed us they didn't sell tickets to Cat Ba so your only choice is to buy from a tour operator—the lowest we were quoted was 250,000 dong plus entry to the bay of 120,000 dong (around $18), the highest $25. Be warned though—although you may be told there is a 3.5 hour option (2.5 hours on a boat, an hour on bus from Gia Luan to Cat Ba town) in reality it could take anything up to 6.5 hours in total, including stops for kayaking and caves, which may not be included in your ticket. We'd only recommend this route if you have time to spare and want to explore the bay. And check what's included.
Usually Western tourists visit Cat Ba as part of a three-day tour that begins and ends in Hanoi, so most people don't have to worry about how to get there at all.
Once you're in your hotel on the harbour, everything is accessible on foot, including the beaches. You can tour the island by motorbike taxi -- rates are very negotiable, but think in terms of 100,000 VND per hour. You can also rent a motorbike yourself for 80,000 to 100,000 VND a day from numerous places in Cat Ba town. Mountain bikes are also available.