The Liga title race is thrillingly alive once more after Barcelona lost their third successive league game, Luis Enrique's side suffering a shock 2-1 home loss to Valencia on Sunday.
Earlier in the day at the Vicente Calderon, Koke, Fernando Torres and Angel Correa were on target as Atletico Madrid drew level on points with the league leaders with a comfortable 3-0 win over Granada.
That result heaped more pressure on out-of-form Barcelona, who fell behind to an Ivan Rakitic own goal, before Santi Mina's fourth goal of the season doubled Valencia's advantage at a stunned Camp Nou.
Although Enrique's men battled back, with Lionel Messi ending a five-game goalless streak by scoring his landmark 500th career goal, Barca could not find an equaliser past Valencia's goalkeeper Diego Alves, who was in superb form.
Barcelona's defeat means they have been beaten three games in a row in the league for the first time since February 2003, while Valencia, under their new coach Pako Ayestaran, are now virtually safe.
La Liga's top three are separated by a single point with five games to play, with Barcelona only leading Atletico - who knocked them out of the Champions League quarter-finals last week - on their head-to-head record and Real Madrid close behind after their 5-1 thrashing of Getafe on Saturday.
The survival hopes of Rayo Vallecano were boosted by their 2-1 win against fourth-placed Villarreal, Miku scoring his seventh goal of the season to move Rayo five points clear of the relegation zone.
Athletic Bilbao took full advantage of Villarreal's surprise defeat with a 1-0 win at Malaga, victory moving them six points behind Marcelino's side after Raul Garcia scored the winner.
Meanwhile, Oriol Riera's late goal earned Deportivo La Coruna a 1-1 draw away at Europa League semi-finalists Sevilla.