Belgian Railways (NMBS/SNCB) operates a train from Brussels to Spa hourly. Tickets cost $16 - $24 and the journey takes 1 h 28 min. Bahn DE also services this route hourly. Alternatively, FlixBus operates a bus from Brussels to Spa 4 times a week. Tickets cost $7 - $13 and the journey takes 2 h. Belgian Railways (NMBS/SNCB) also services this route once daily.
From Bruxelles-Nord train to Welkenraedt, Welkenraed Bf then train to Spa. 3 h 8 min 32€. From Brussels, Brussels-North station bus to Verviers Central then train to Spa. 3 h 28 min 15€. From Brussels drive to Spa. 1 h 25 min 18€.