Xandao beat Joe Hart with a clever close-range backheel after 51 minutes as the Portuguese side controlled most of the last-16 encounter at the Jose Alvalade Stadium.
Hart also made two good saves, but City did have chances with Gareth Barry and Aleksandar Kolarov going close and Sergio Aguero almost breaking through late on.
Sporting's wastefulness, particularly early on, will give the Barclays Premier League leaders hope they can still turn the tie around at the Etihad Stadium.
Manager Roberto Mancini made seven changes from the side which beat Bolton on Saturday, restoring the rested Aguero, David Silva and Edin Dzeko while Mario Balotelli was among those to make way.
Gael Clichy switched to right-back in place of the injured Pablo Zabaleta and Nigel de Jong replaced suspended talisman Yaya Toure.
Kolo Toure took over from Joleon Lescott in central defence, but that pair were playing alongside each other after just eight minutes as influential captain Vincent Kompany limped off.
That was a major blow for the visitors, who created an early chance for Toure from a short corner but his header was saved by Rui Patricio.
Aside from that, it was Sporting who were initially the more threatening in attack.
Hart came out of his area to head away a long ball which dipped over Toure's head and could have been caught out as Stijn Schaars shot from long range but it drifted wide.
Joao Pereira then forced Hart to make a smart save as Sporting pieced together a good move and Schaars dragged the rebound wide.
Pereira missed with another chance before Matias Fernandez launched a counter-attack after De Jong lost a 50-50 challenge in the Sporting half.
The Chilean shaped to shoot as he reached the box and exchanged passes with Pereira, but Lescott broke up the charge.
City had a rare chance when the ball was worked to Gareth Barry outside the box after a corner in the 24th minute but the England midfielder curled his shot wide.
Sporting broke again as Ricky van Wolfswinkel fed Marat Izmailov in the box, but Lescott blocked the Russian's shot.
Dzeko then appeared to hurt himself as he ran into the bench after attempting to keep the ball in play and City might have paid a heftier price had Diego Capel's long-range drive been on target.
City then allowed Daniel Carrico space to try a shot from distance but he too blasted wide.
City looked to make a positive start to the second half, but a good break ended when Silva lofted a shot from Kolarov's driven cross well over.
Sporting responded strongly and took the lead with a brilliant finish from Xandao, a January signing from Sao Paolo.
Hart could only parry a free-kick from Fernandez but did brilliantly to block Xandao's first attempt from point-blank range.
Yet he could do little to prevent City falling behind as Xandao reacted quickly and nimbly backheeled the ball past him.
Sporting pressed again, but Hart dealt comfortably with a Van Wolfswinkel shot. But the goalkeeper almost got into trouble as he and Lescott failed to communicate as an Izmailov cross came in, but the defender headed behind.
Aguero worked his way into the box as City searched for an equaliser, but Patricio came out to block before Kolarov shot powerfully but narrowly wide from outside the box.
City were indebted to Hart just after the hour when he saved low down from Van Wolfswinkel eight yards out.
Kolarov troubled Sporting again as he found space down the left and whipped in a cross which clipped the top of the crossbar.
Balotelli was introduced to a crescendo of boos from the home fans when Mancini sent him on for Dzeko with 18 minutes remaining.
But the Italian was quickly into the action, breaking towards the byline and twisting one leg behind another to cross low for Silva, who slid in to shoot inches wide.
Sporting appealed for a penalty for handball against Toure with six minutes remaining but the referee was unmoved.
The hosts began to sit deep in the hope of running time down, but City struggled to make any headway.
Aguero did get past Patricio in the last minute but Xandao blocked his shot and the Argentinian's appeals for a penalty were waved away, the ball having hit the defender's thigh.