Madrid twice came from behind before Isco's low drive in the 90th minute handed Los Blancos victory against their exhausted hosts, who had faced waves of attacks.
Sporting opened the scoring in the 14th minute when Mikel Vesga scooped a pass over Madrid's defence which Duje Cop slammed home, before Isco equalised three minutes later with a brilliant individual goal.
Vesga looped a header over Kiko Casilla to put the hosts back in front after halftime, but Alvaro Morata equalised with a headed goal of his own, before Isco's late winner.
Fabio Coentrao and Danilo were handed rare starts in the fullback positions, while forwards Cristiano Ronaldo and Karim Benzema were rested, with Wales international Gareth Bale out injured.
The hosts took advantage, showing no fear against the league leaders and they broke the deadlock with Cop's well-worked goal.
The lead did not last long, however, as man-of-the-match Isco danced away from two defenders before curling into the top corner.
It was Sporting, however, who moved back in front in the 50th minute, with on-loan Athletic Bilbao midfielder Vesga planting a header high over Casilla that dipped into the net.
Morata scored nine minutes later, heading home Danilo's cross, and Madrid pressed for a winner with Isco robbed of the ball when poised to shoot after another bewitching dribble and substitute Marcelo drilling wide.
In the final minute of the game Madrid got their goal, Isco finding a pocket of space on the edge of the area and firing a strike inside Ivan Cuellar's near post.
Earlier on Saturday Deportivo La Coruna beat Malaga 2-0 to move nine points clear of the relegation zone, with Sporting Gijon still 18th, on 22 points.