Barca are now six points behind Real Madrid and one ahead of Villarreal having played one game more than their rivals, and a run of one win in seven games has severely dented their title hopes. With Real playing struggling Murcia on Sunday, a nine-point gap with six to play looks likely.
The night started well for Barca though as Eto’o took just 62 seconds to put his side in front as he headed home from a Giovani dos Santos cross.
Controversy then erupted at Estadio Nuevo Colombino as Marco Ruben drew the teams level in deeply disputed circumstances after 42 minutes.
Victor Valdes appeared to keep Ruben’s header from crossing the line but the assistant referee awarded a goal, much to Barca’s fury.
After half time, Eto’o bettered his first half exploits when scoring within 43 seconds of the restart with a thumping finish from outside the box.
Lionel Messi made his comeback from injury as a substitute on 65 minutes but his arrival merely precipitated an equaliser from Recre as Ruben added his second with a superbly taken header that floated over Victor Valdes from a tight angle after the Barca keeper slipped.
Meanwhile, Racing Santander’s excellent season continued as they defeated struggling Valencia 2-1 to move level with Atletico Madrid in fourth place.
Gonzalo Colsa opened the scoring after 61 minutes as he swept the ball past Timo Hildebrand, but Ronald Koeman’s men quickly equalised through David Villa.
The Spain international scored from the penalty spot after Fernando Morientes had been fouled by Aldo Duscher in the box.
Former Liverpool striker Morientes then struck the bar and post before Mohamed Tchite struck the winner for Racing with seven minutes remaining.