Benfica, chasing their first championship since 1994, lead the table with 51 points from 26 games. Sporting are six points adrift in joint second place with Braga, Boavista and champions Porto.
Porto were reduced to 10 men when South Africa striker Benni McCarthy was red-carded for a foul on Sporting defender Rui Jorge in the 34th minute.
The visitors then went down to nine men when Greek defender Georgios Seitaridis handled the ball in the penalty area.
Guardiola: 'A good moment for all of us'
Brazilian striker Liedson converted the resulting 62nd-minute spot kick to notch his 21st goal of the season.
Substitute Carlos Martins grabbed Sporting's second goal after pouncing on a back pass in the fourth minute of injury time.
Real Madrid will win the trophy, there's nothing you can do about it - The Warm-Up
‘He grew up’ - City boss Guardiola on outstanding Foden