Die Gemeinde ist verkehrsmässig gut erschlossen. Sie liegt an der Hauptstrasse von Zwingen über den Passwang nach Balsthal. Erschwil erreicht man über die H18 von Basel her je nach Tageszeit innert 35 Minuten; über den Passwang erreicht man den Autobahnanschluss Oensingen ebenfalls innert 30 Minuten.
Erschwil liegt im Tarifverbund Nordwestschweiz und ist mit einem Postautokurs, welcher die Strecke von Zwingen her bedient, werktags halbstündlich, abends und am Sonntag stündlich an das Netz des öffentlichen Verkehrs Richtung Basel und Laufen angebunden.