Following their defeat by rivals Real Madrid over the weekend, Wednesday's result would have piled on even more pressure on coach Ronaldo Koeman as his side have won only two of their last seven league games and lie ninth in the standings with 15 points.
Colombian striker Falcao pounced in the 30th minute after Barca captain Sergio Busquets lost the ball in midfield and allowed Rayo to launch a quick counter-attack that led to the goal. After dribbling past Gerard Pique, Falcao finished off in style by finding the back of the net.
Barca had a great chance to equalise in the 72nd minute but Rayo goalkeeper Stole Dimitrievski saved Memphis Depay's penalty strike.
In a frantic end to the game, Rayo held on to secure their first league win over Barcelona in 19 years to preserve their unbeaten league run at home this season. They have now won all five of their matches in Estadio de Vallecas.
They are fifth in LaLiga with 19 points from 11 games, only two behind surprise pace setters Sevilla and Real Sociedad.
“I’m really emotional right now. It’s my first win against Barcelona after playing four times against them (with Atletico). Seeing the fans singing, the joy that they are having in the stands, it’s humbling and satisfying,” a tearful Falcao, who joined Rayo during the close season, told reporters.
After squandering an earlier chance to score, the 35-year-old Falcao capitalised on an uncharacteristic error by Busquets, who lost possession of the ball after getting distracted.
"I made a mistake and I take full responsibility", Busquets told reporters.
"We are missing a little bit of everything. We have to keep things together and get back on track as soon as possible."
Barcelona were erratic during the last quarter and never really threatened to score, except when they earned and then missed the spot kick.