Lafita pushes Zaragoza past lowly Gijon
After a nervy opening, Helder Postiga gave the visitors the lead as he raced onto David Mateos' flick-on to slot past Juan Pablo.
Sebastian Eguren equalised for Sporting three minutes into the second half, taking advantage of poor marking to head home at the back post, but in a dramatic finish Lafita handed Zaragoza their third straight win by sweeping home Franco Zuculini's cross.
Both sides came into the game locked on 25 points and, with both desperately needing the points to boost their survival hopes, the tension was clear to see in a disjointed opening.
Sporting were first to threaten on 18 minutes when Eguren's powerful header was well saved by Roberto.
The Zaragoza keeper was called into action again 15 minutes later to deny Adrian Colunga and Nacho Cases wastefully fired the rebound wide, but it was the visitors who went ahead against the run if play as Mateos headed a long ball into the path of Postiga and the Portuguese striker finished calmly below Pablo.
Sporting continued to press and got their reward just after half-time as Eguren again found himself free inside the area from a corner and his header from close range gave Roberto no chance.
Postiga nearly restored Zaragoza's lead just after the hour but his smart effort was turned around his near post by Pablo.
Substitute Gaston Sangoy then had a great chance to win the game for the hosts but blazed over when well placed inside the area with eight minutes remaining and that miss was to prove costly as, deep into added time, Zuculini found space on the right and his driven cross was prodded home by Lafita from point-blank range.
The win moved Zaragoza up to 18th but they remained three points off safety, while Sporting fell to the foot of the table.