Although low-cost Ryanair operates Barcelona Girona (Change of Airport may be required)- Porto, I would have thought that Madrid, London Gatwick, and/or Paris CDG would be equally good routings and then catch a Ryanair or Easyjet low-cost to Porto.

From the airport you would have to take the Light Rail system into the city(Campanha) and then get a train to Braga. (Trains every hour) (About 50 minutes travel time)