The only way to get really good at speaking Spanish is to speak it. Lessons, books, TV, the Internet and so on are all great for learning words, phrases, comprehension and grammar, but the only way to speak fluidly is to speak a lot.
If you are in a region of Spain or Latin America where there are a lot of English speaking visitors it can be hard to speak Spanish to the locals, as they all speak English and want to speak it - either to practice or because they theink they are being helpful. Sometimes the best thing is to just persevere. If you keep speaking Spanish they might figure out that you want to practice and go along with it. Sometimes it feels like a battle of wills - a competition to see who will drop back into their own language first. Sometimes it is worth explaining that you want to learn Spanish and ask the other person if they mind speaking Spanish even if it makes the conversation slower. Only one person has ever complained to me that they wanted to speak English instead, because they wanted to practice it.
It is also worth seeking out Spanish speakers, rather than hanging out with the English all the time in a new place. Many people are happy to help out with learning their language, and will appreciate a little help in learning English in exchange.
I think the best advice it to treat every Spanish conversation, or exchange as an opportunity rather than a hurdle, and learn what you can from it.