Relegation-threatened Cadiz ended La Liga leader Real Madrid's 10-game winning streak in all competitions with a disappointing 0-0 draw on Sunday.
It was a gutsy performance by the southern club at the league leaders as they survived a second half, in which Real bombarded Jeremias Ledesma’s goal without finding the net.
Real is now six points clear of second-placed Sevilla, who beat Atletico Madrid 2-1 on Saturday and have a game in hand, and 10 in front of Real Betis, who lost at Athletic Bilbao.
Barcelona, who won 3-2 at home to Elche on Saturday, is seventh, 16 points behind its fierce rival.
With Real missing six players due to a COVID-19 outbreak at the club, all eyes were on Eden Hazard, who was making his first start since September against second-bottom side Cadiz.
After a poor first half, the Belgian forward got into his stride after the break but Real did not do enough to break the deadlock in front of its disappointed fans at the Bernabeu.
"I can't ask more from my players, they did everything they could but the ball didn't go in," Real coach Carlo Ancelotti told reporters.
"Hazard had problems in the first half but he was much better after the break. I'm happy for him."
Hazard played the full 90 minutes for the first time with Real Madrid since November 2019.
After a poor first half, Ancelotti switched the Belgian from the right wing to a more central role, as an attacking left midfielder.
The change seemed to work, as Hazard headed on target from inside the box five minutes into the second half, but Ledesma got down well to make the save.
As Hazard got into the flow of the game, he started to take responsibility for leading Real's attack, finding Vinicius in behind twice in a row with the Brazilian almost netting an opener.
Desperate for a goal, Ancelotti brought on striker Luka Jovic from the bench in place of Uruguayan midfielder Federico Valverde.
But Cadiz held on under fire and escaped with a point.