Cadiz have taken points in three of their last four games against Real Madrid in La Liga
La Liga champions Real Madrid were held to a draw away to relegation-threatened Cadiz.
Mariano put the 35-time Spanish champions ahead after five minutes following an excellent run by Rodrygo.
Ruben Sobrino struck a deserved equaliser for Cadiz before half-time.
Alvaro Negredo saw his second-half penalty saved by Real goalkeeper Andriy Lunin to leave Cadiz outside the relegation places on goal difference heading into the their final fixture.
With one eye on their Champions League final meeting with Liverpool in Paris on Saturday, 28 May, Real manager Carlo Ancelotti made six changes and rested key players including Luka Modric and Karim Benzema.
The pressure may be off domestically for Real, having clinched the title at the end of April with four games to spare, however that did not stop them thrashing Levante 6-0 in midweek.
They faced a much sterner test on Sunday, however, as a determined Cadiz side fought for their La Liga status.
Ukraine international Lunin, replacing Thibaut Courtois for the visitors, made six saves as the hosts registered 21 attempts at goal.
But Cadiz were unable to add to Sobrino’s finish, as Negredo spurned the chance to put his side back in front after being brought down by Lunin – the Real goalkeeper diving to his left to keep out the Spaniard’s spot-kick.
Mallorca’s 92nd-minute winner against Rayo Vallecano moved them level on 36 points with Cadiz, who know they must equal Mallorca’s result next Sunday given their 12-goal superior goal difference.
Real remain 12 points clear at the top after Barcelona were held to a goalless draw at Getafe.