But the hosts hit back and snatched the lead with a decisive four-minute stretch to start the second half.
Cristhian Stuani evened the scoreline in the 54th minute, when he latched onto a loose ball and fired his low shot past Kiko Casilla from inside the box.
And Portu sealed the points four minutes later, sensationally back-heeling Pablo Maffeo's low cross to the delight of the home faithful.
The result keeps Real in a tie for third place with city rivals Atletico Madrid, eight points behind leaders Barcelona. Girona move up to 11th.
Getafe produced a superb second-half performance to come from behind and beat Real Sociedad 2-1 at the Coliseum Alfonso Perez.
The visitors took the lead after just five minutes when Adnan Januzaj picked up the ball just inside his own half and was allowed to advance unchallenged before playing a perfectly weighted ball to Mikel Oyarzabal, who fired a first-time finish into the bottom corner.
Getafe offered little going forward in the first half but were a different side after the interval and deservedly equalised after 78 minutes as Francisco Portillo's superb pass allowed fellow substitute Angel Rodriguez to control on his chest before firing home.
And the home side secured all three points five minutes from time when Inigo Martinez brought down Rodriguez in the area and Jorge Molina scored from the spot.
Eibar fought back from two goals down to draw 2-2 with Levante.
Jose Luis Morales gave the visitors the lead in the 35th minute, and two minutes later they doubled their advantage through Enis Bardhi.
But Eibar gave themselves a lifeline six minutes after the break with a goal from Anaitz Arbilla and Charles earned the strugglers what could prove to be a very valuable point with the equaliser in the 74th minute. THINK YOUR FRIEND WOULD BE INTRESTED? SHARE THIS STORY USING ANY OF THE SHARE BUTTON BELOW ⬇ PLACE YOUR TEXT ADVERT BELOW:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>