Huelva has a main bus station, close to the city center and la merced, and people usually call it "Damas".
Most of buses routes are operated by the company Damas with services to the beach, Huelva´s villages and towns, Sevilla or Badajoz.
You can also check Socibus, a cheaper company with services to Madrid and Córdoba.
If you want to go to Portugal, the companies are Damas and Eva, and the prices of course depend on where do you want to go.
In Socibus you can get special prices with the European Youth Card (>26-30).
With Socibus for example is possible to get the tickets online, but you can´t get discounts there, so if you have your card, it´s better to go to the station if you can.
You can read more about services and prices clicking on Socibus, Damas or Eva.
P.S. There are also services available from and to Romania.