Struggling Rayo Vallecano has upset Atletico Madrid 3-0 in La Liga in a stunning win watched by only around 5,000 people because of a protest by Rayo fans.