Transdev has buses leaving at least hourly for Braga (€3.30, 50 minutes) Monday through Saturday, and eight buses on Sunday. It also has services to Porto (€3, 50 minutes) running approximately hourly on weekdays but less often on weekends.
Rodonorte heads for Amarante (€7.40, one hour), Vila Real (€8.30, 1½ hours) and Bragança (€13.80, 3½ hours).
Rede Expressos has express service to Lisbon (€19.50, 4½ hours) daily.
Get Bus has six buses daily that do the 50-minute run between the Porto airport and Guimarães, in each direction. The one-way fare is €8 (€4 for children); return is €14 (€8 for children).
Guimarães is the terminus of a branch of Porto’s wide suburbano network. Commuter trains potter out to Guimarães from Porto (€3.25, 55 to 75 minutes) 11 to 16 times daily. Avoid the much pricier, once-daily intercidade (express) train (€14.70, 55 minutes).