Vinicius Jr missed his second penalty in less than a month as LaLiga champions Real Madrid were shocked at home by Valencia 2-1 on Saturday.
That left the door open for rivals Barcelona to extend their lead on top of the standings, but they spurned the chance when they were held at home 1-1 by Real Betis after visiting defender Natan cancelled out Gavi's early opener.
The draw moved Hansi Flick's Barca on to 67 points, four ahead of Real Madrid while Betis climbed to fifth on 48 points.
Valencia are 15th on 34 points.
Real Madrid dominated possession throughout the game but wasted too many chances, with Valencia goalkeeper Giorgi Mamardashvili putting in a brilliant performance between the posts, including blocking Vinicius's first-half penalty.
After Kylian Mbappe was fouled inside the box in the 12th minute, Brazilian forward Vinicius, who had missed a penalty in Real's Champions League last-16 clash against Atletico three weeks ago, struck a feeble effort low to the goalkeeper’s left that Mamardashvili pounced on.
In the following play, defender Mouctar Diakhaby opened the scoring for Valencia with a header from an Andre Almeida corner in the 15th minute but almost gifted Real the equaliser when he put the ball into his own net six minutes later.
However, he was rescued by VAR who spotted an offside in the build-up that ruled it out and Mamardashvili made a string of saves to keep Valencia's lead before the break, with Mbappe denied several attempts.
Vinicius scored the equaliser from a corner in the 50th minute and pushed for the winner in the second half, with the Georgian keeper, on loan at Valencia from Liverpool, continuing to make stunning saves to frustrate Real Madrid.
Valencia held on and took advantage of a quick counter five minutes deep into stoppage time as Hugo Duro's header secured their first win away from home in LaLiga this season.
Real will have to recover their confidence quickly as they will travel to London to face Arsenal in the first leg of their Champions League quarter-final tie on Tuesday with a big question-mark between the posts.
With Thibaut Courtois is still nursing a right foot injury sustained in international duty with Belgium last month and his reliable Ukrainian replacement Andriy Lunin sidelined with a leg muscle issue, Ancelotti was forced to start 19-year-old academy goalkeeper Fran Gonzalez on Saturday against Valencia.
The 6-foot, 6-inch giant made a stunning save late in the game to deny a Diakhaby header and could be in line to a massive responsibility if Courtois and Lunin are not available for Tuesday's Champions League clash.
Barcelona held by Betis, miss chance to extend league lead
Barcelona were given further motivation by Real's shocking loss and had a great start when Gavi opened the scoring from close range, brilliantly assisted by Ferran Torres in a great team play seven minutes after kick-off.
However, Natan headed the equaliser from a corner in the 17th minute and though they dominated, Barca could not find a way past 38-year-old goalkeeper Adrian who made a string of saves later on to frustrate the hosts.
Adrian's brilliant performance started even before Barca opened the scoring, when he palmed away Pedri's strike from inside the box, but there was nothing he could do to keep Gavi from scoring moments later.
Barca kept up the pressure after taking the lead but Betis equalised from a Giovanni lo Celso corner which Natan jumped higher than defender Ronald Araujo to meet and head into the back of the net.
Adrian came to the rescue again as he made a stunning one-handed save from a Lamine Yamal curling strike from inside the box in the 38th minute.
Coach Hansi Flick subbed on Raphinha in the second half and Barca came back even stronger, dominating more than 75% of possession but wasting too many chances.
The Brazilian forward was a constant menace and missed with a curling strike from the edge of the box, with Adrian making two great efforts to deny a Jules Kounde strike in the 55th minute and a Fermin Lopez shot in the 85th.