Barcelona were condemned to a third successive home defeat as Alvaro Garcia's early strike secured a memorable 1-0 victory for Rayo Vallecano at Camp Nou in La Liga.
The evening couldn't have gotten off to a worse start for Xavi's side, with the visitors stunning the home crowd inside six minutes.
Sergino Dest - replacing the injured Dani Alves - was caught napping when Garcia made a dart inside. The winger was found by Isi Palazon and, with just Marc-Andre ter Stegen to beat, he controlled and steered a lovely rifled finish beyond the Barcelona No.1.
Barcelona threatened an immediate response through both Jordi Alba and Ronald Araujo, and they very nearly profited from a Rayo error when Pierre-Emerick Aubameyang closed down Rayo goalkeeper Stole Dimitrievski on the half-hour mark.
Frenkie de Jong picked up the loose ball and fed Ousmane Dembele, but Aubameyang could not divert the Frenchman's cut-back towards goal.
The crossbar was then left shaking as Barcelona searched for an equaliser before the interval. Gavi was quick to collect the loose ball on the edge of the area from a corner, curling his effort off the underside of the crossbar where Ferran Torres' rebound was adjudged to be offside.
The away side ought to have doubled their lead shortly into the second half when Palazon met a wicked Francisco Garcia delivery. However, Alba was expertly placed to block the effort from five yards out.
Barca struggled to cut through the visitors after the interval, and it took until the 70th minute for the hosts to fashion a meaningful attempt at goal. Dembele's cross found Memphis in the penalty area, but Nikola Maras heroically threw himself infront of the shot from just six yards out.
Memphis then stung the palms of Stole Dimitrievski in the Rayo goal with a rasping effort from range as Adama Traore threatened with his pace off the bench.
The former Wolves man glided into the penalty box in injury time before curling his shot towards goal with the outside of his foot, but Dimitrievski was equal to his effort as Rayo, via a heroic goalline block on Dembele's effort, clung on for victory.
Barcelona player ratings vs Rayo Vallecano
1. Barcelona (4-3-3)
GK: Marc-Andre ter Stegen - 5/10 - Could do little to prevent Rayo's goal. Mopped up behind Barcelona's high defensive line when required.
RB: Sergino Dest - 1/10 - Culpable for Rayo's opener. Struggled massively on both sides of the ball before he was hooked at the interval.
RCB: Ronald Araujo - 5/10 - The chief distributor of the ball out of defence in the first half. Commanded the Barcelona defence well.
LCB: Eric Garcia - 4/10 - Slow to move the ball in the first half. Improved when Xavi moved to a back three and he could punch passes through the lines on his stronger foot.
LB: Jordi Alba - 8/10 - Showed great endeavour down the left hand side, motoring into dangerous areas in the final third while being active defensively.
CM: Sergio Busquets - 4/10 - Rayo stifled his influence in midfield, with the Spaniard enjoying fewer touches than he'd ordinarily be accustomed to.
CM: Frenkie de Jong - 3/10 - Played on the fringes of the game, often losing his physical duels and allowing his passes to go astray. Looked frustrated to be withdrawn before the hour mark.
CM: Gavi - 6/10 - Unfortunate with his effort which struck the bar in the first half. Constantly moved into dangerous positions between the lines, but perhaps lacked the conviction to take the game by the scruff of the neck a la Pedri.
RW: Ousmane Dembele - 6/10 - Very much the danger man for Barcelona, although his final ball veered between the brilliant and the baffling.
ST: Pierre-Emerick Aubameyang - 2/10 - Wasn't at his sharpest inside the penalty area, while his link-up play was markedly sluggish.
LW: Ferran Torres - 2/10 - Struggled to get involved in proceedings with Barcelona concentrating their attacks down the right. Hooked before the hour mark.
SUB: Clement Lenglet (46' for Dest) - 5/10 - Barca's distribution out of defence improved after his introduction at half time.
SUB: Nico (59' for de Jong) - 5/10 - Played a slightly reserved role alongside Busquets despite Barca requiring bodies to be thrown forward.
SUB: Memphis (59' for Torres) - 5/10 - Denied by a heroic block from Maras in the second half as Barca pushed for a leveller.
SUB: Luuk de Jong (70' for Aubameyang) - N/A
SUB: Adama Traore (70' for Eric Garcia) - N/A