The closest airport to Ko Pha Ngan is on Ko Samui. There are regular flights from Bangkok (and elsewhere to Ko Samui). From the airport it is a short ride to the pier on Ko Samui that runs boats to Haad Rin on Ko Pha Ngan.
A second option is to fly to Surat Thani (on the mainland) as the tickets are significantly cheaper, but the trip is quite a bit longer (from the airport to the pier and then a considerably longer ferry ride - add about four hours onto the trip).
Government buses under the 999 seal make direct trips between Bangkok and Ko Pha Ngan, using Raja car ferries to reach the island.
In Bangkok, a first-class bus departs Sai Tai Mai (Southern) Terminal at 19:30 for 720 baht, departing for Bangkok from Thong Sala Pier on Ko Pha Ngan at 17:00. VIP buses depart Bangkok’s Sai Tai Mai and Morchit (Northern) Terminal around 19:30 for 1,000 baht, departing from Thong Sala Pier at 17:00. The trip takes around 14 hours all up and fares include the ferry as well.
Another good option is Lomprayah, which offers all-in tickets including ferry and bus (and in some cases an additional ferry) to Bangkok, Hua Hin, Nakhon Si Thammarat, Hat Yai, Khao Sok, Khao Lak, Phang Nga, Phuket, Krabi, Railay, Ko Phi Phi and Ko Lanta.
Otherwise you should book an all-in ticket to Surat Thani town and make a transfer at either of the two bus stations.
Ko Pha Ngan is connected to both Ko Samui and Ko tao by direct ferry connections, along with Don Sak and Surat Thani on the mainland. Thong Sala is the main ferry port, though there is a second, far smaller port, at Haad Rin which runs a direct service to Bang Rak on Ko Samui. The standard of ferries have improved dramatically over the years, but interruptions and delays due to poor weather do still happen, so be wary of booking tight flight connections.
To and from the mainland
Car ferry company Raja operate a service from Don Sak on the mainland to Thong Sala on Ko Pha Ngan. Don Sak is roughly an hour from Surat Thani by bus. These ferries both carry vehicles, so if you are self-touring Thailand by car or motorbike, these are your only option. The trip takes around two hours. There are seven departures daily in each direction, from 05:00 on Ko Pha Ngan and 06:00 on the mainland, with the last ferry leaving Don Sak at 18:00 and Ko Pha Ngan at 17:00. Ferries don't operate in extremely high seas.
The fare direct with Raja is 210 baht per person, 260 baht with a motorbike and 550 baht with a car. Note these fares are only to Don Sak – you'll need to pay for a bus onwards to Surat Thani town from there. Tickets can be bought online with Raja or via 12Go Asia.
Seatran run Don Sak to Thong Sala, Ko Pha Ngan twice daily at 11:00 and 14:30 from Don Sak and at 08:00 and 10:30 from Ko Pha Ngan. The run costs 450 baht and takes 2.5 hours. The fare direct with Seatran Discovery is 450 baht baht per person. Note these fares are only to Don Sak – you'll need to pay for a bus onwards to Surat Thani town from there. Tickets can be bought online with Raja or via 12Go Asia.
The night ferry runs to Surat Thani (rather than Don Sak) and leaves Ko Pha Ngan at 22:00 and leaves Surat Thani at 23:00. The trip takes 6-7 hours.
To and from Ko Samui
Raja Ferry runs three services daily from the Raja pier (between Lipa Noi and Taling Ngam on Samui's west coast) and Thong Sala on Ko Pha Ngan. Departures from Samui are at 09:00, 14:00 and 18:00, and from Ko Pha Ngan at 07:00, 12:00 and 16:00. The trip takes 1.5 hours and costs 150 baht for a person, 200 for a scooter and 470 baht for a car. Tickets can be bought online via Raja Ferry or via 12Go Asia.
Seatran Discovery Link has a three times a day service between Bang Rak and Thong Sala on Ko Pha Ngan. The trip takes 30 minutes and costs 300 baht. Tickets can be bought direct from Seatran Discovery Link or via 12Go Asia.
Also from Bang Rak, the Haad Rin Queen shuttles between Ko Samui and Ko Pha Ngan four times daily (10:30, 13:00, 16:00 and 18:30), takes 50 minutes and costs 200 baht. If you are heading to Haad Rin from Ko Samui, this is the service you want to aim for. Tickets cannot be bought online so just show up 30 minutes before departure.
Songserm runs three services a day between Nathon on the west coast of Ko Samui and Thong Sala on Ko Pha Ngan. Departures are at 11:00 and 17:30 from Ko Samui and 07:00 and 12:30 from Ko Pha Ngan, the service takes 45 minutes and costs 200 baht. Tickets can be purchased online via Songserm.
Lomprayah runs four services a day (11:15, 13:30, 17:00 and 19:00) from Nathon to Thong Sala on Ko Pha Ngan and at 07:20, 09:00, 12:00 and 14:30 in the opposite direction, the trip takes 30 minutes and costs 300 baht. They also run two services a day from their pier on Mae Nam Beach to Ko Pha Ngan at 08:00 and 12:30 (reverse at 11:00 and 16:20) and the trip takes 20 minutes costing 300 baht. Tickets for both routes can be bought online from Lomprayah or via 12Go Asia.
Last but not least, the Thong Nai Pan Express runs between Mae Nam and Thong Nai Pan once daily and costs 300 baht. It stops at Haad Rin, Haad Thien, Than Sadet and Thong Nai Pan. Note at Thong Nai Pan you need to wade onto the boat so this isn't ideal if you have a lot of baggage. It leaves Thong Nai Pan at 09:00 and leaves Mae Nam around midday for the return trip. This service does not run in wet season and tickets cannot be bought online.
To and from Ko Tao
All services on this route run between Thong Sala on Ko Pha Ngan and Mae Haad on Ko Tao.
Lomprayah runs boats from Ko Pha Ngan at 08:30, 13:00 and 17:30 costing 500 baht a pop. In the opposite direction the boat runs at 06:00, 09:30 and 15:00.
Songserm has a single daily service which leaves Ko Pha Ngan at 10:00 and costs 350 baht. In the opposite direction the boat leaves at 15:00.
Seatran Discovery operates three services a day between Thong Sala and Mae Haad, leaving Ko Pha Ngan at 08:30, 13:30 and 17:00. The trip costs 240 baht and takes 1.5 hours. In the reverse direction they leave Ko Tao at 06:30, 09:00 and 15:00.
Tickets can be bought online direct with Lomprayah, Songserm and Seatran Discovery, or with 12Go Asia.
Songthaews (pick-up truck taxis) cruise all of Ko Pha Ngan’s main roads; a short trip (say Baan Tai to Baan Kai) should cost around 50 baht per person. From Thong Sala, expect to pay 100 baht per person to Baan Tai or Haad Rin; 150 baht to Haad Yao West or Baan Chaloklum; 200 baht to Haad Salad or Mae Haad; and 300 baht to Thong Nai Pan.
These are the per-person fares for at least two people; often drivers wait to collect passengers before shoving off. Expect to pay around 500 baht (negotiable) for even a short ride if you want to leave right away.