The National Transport Commission (NTC) has a list: They also supply details for:
Online Bus Reservation System
Online Bus Information
Reserve in Person
Go to any of these stations and buy the ticket up to 30 days before the date of travel:
Aluthgama, Anuradhapura, Badulla, Bandarawela, Batticaloa, China Bay, Colombo Fort, Diyathalawa, Ella, Galle, Gal Oya, Gampaha, Haputale, Hatton, Hikkaduwa, Hingurakgoda, Jaffna, Kalutara South, Kandy, Kantale, Kilinochchi, Kurunegala, Matara, Nanu Oya, Nawalapitiya, Pallai, Peradeniya, Polgahawela, Polonnaruwa, Thabalagamuwa, Trincomalee, Valaichchenai, Vavuniya, Welikanda, Wellawatte
If reserved seating is sold out it is always possible to buy an unreserved ticket on the date of travel.
Book by Telephone or Online