Substitute striker Roberto Soldado scored a late equalizer to save Real Madrid blushes as ten-man Osasuna held the capital side to a 1-1 in the Primera Liga on Sunday. Osasuna stunned the home side with a 76th lead through a Savo Milosevic header. The visitors were reduced to ten men as early as the 15th minute when midfielder Francisco Punal was sent-off. The draw moved improved Real's place in the Liga standings to third on 29 points, along with Villarreal, Deportivo and Valencia. Osasuna reduced the gap with leaders Barcelona to two points after bagging their 35th against the Madrid giants. Punal received his marching orders after his arm caught Real defender Roberto Carlos in the face. Despite the one-man advantage, Real gave a below-par performance and were made to pay for it when Josetxo sent a free-kick that was headed home by Serbian international Milosevic from close range. Soldado put Los Meringues at level seven minutes from the final whistle when he latched on to a cross from Zinedine Zidane to notch home past goalkeeper Ricardo. Elsewhere, Villarreal came from a goal down to beat Getafe 2-1. Riki Sanchez put Getafe ahead in the 20th minute before goals from Argentina playmaker Juan Roman Riquelme and Uruguay striker Diego Forlan secured the win for the Yellow Submarines. In other matches, Valencia scrapped past Alaves with a 1-0 win, Espanyol held Zaragoza to a 2-2 draw, Sevilla edged Real Sociedad 3-2, Racing Santander tied with tied with Malaga 1-1 and Atletico Madrid were held to a 2-2 draw by Mallorca.