Madrid can all but secure a first league title in five years with victory when they host Barca next weekend.
But not for the first time this season they needed a late show after Duje Cop and Mikel Vesga put Sporting in front early in both halves.
Isco’s fine individual effort and a towering header from Alvaro Morata ensured neither lead lasted more than a few minutes.
And Isco sealed the comeback when he drilled home from the edge of the box.
Barca can close the gap back to three points when they host Real Sociedad later on Saturday.
Madrid boss Zinedine Zidane made nine changes from the side that beat Bayern Munich in the first leg of their Champions League quarter-final in midweek.
Cristiano Ronaldo and Karim Benzema were left out of the squad entirely alongside the injured Gareth Bale, whilst Toni Kroos, Luka Modric and Marcelo had to settle for a place on the bench.
Cop missed a late penalty with the chance to snatch a draw when the sides last met in November.
However, the Croatian made amends when he finished off a lovely Sporting move by volleying home Vesga’s scooped pass to put Sporting in front after 14 minutes.
The lead lasted just three minutes as Real responded with a wonder goal of their own.
Isco received Lucas Vazquez’s pass inside a crowded penalty area but somehow dribbled past two Sporting defenders before curling the ball into the top corner.
Despite dominating possession for the remainder of the first half Real had to wait until early in the second period for another clear chance to take the lead.
Home goalkeeper Ivan Cuellar somehow turned Nacho’s header just out of the reach of Morata, who was awaiting to apply the final touch for a tap-in.
Sporting went straight up the other end to retake the lead as Vesga looped a measured header into the far corner.
Once again, though, Sporting’s defensive deficiencies were quickly exploited by the European champions as Morata towered above his marker to head home Danilo’s cross.
Madrid then peppered the Sporting goal, but didn’t make the breakthrough until injury time as Isco’s effort from the edge of the area had too much power for Cuellar.
Defeat means Sporting remain five points from safety in 18th with just six games remaining.