They definitely have the upper hand because if you win, you may decide to bet it all on the next week/game. They can afford to keep betting against you until you are either broke or go home. This is true in all forms of casino gambling however, not just sports gambling.
In sports betting, there are two formats, both designed to give the house the edge. One you already mentioned, the spread. Have you even noticed though that the spread changes over time? This is because the number of people voting one way or the other changes, and the bookies slide the spread one way or the other to encourage the bets one way or another. If you place a bet with a spread, your bet remains the same, but future bets will have a different spread. Let's say for example you bet $x that team a will win and they are favored to win by 2, which means the spread is -2 against you. If the majority of people start betting on the same team as you, the spread may increase and those new betters will see -3, -4 or more, making it harder for them to win of course. On the contrary, if many begin to vote on the underdog, you will see the spread decrease, or even switch over. The entire system is designed to ensure that more betters end up on the losing side than on the winning. If successful, any betters that win are actually just sharing the money with the house that was lost by the majority, the losing bets. Of course this doesn't always work, but so long as it usually works, the house makes a bundle.
The other system is odds betting, which is pretty self explanatory as to how the house ends up on top.