Colombian striker Fredy Montero came off the bench to score twice for the Portuguese side in the final 20 minutes of the game.
Alan Pardew’s side, who handed a debut to goalkeeper Alex McCarthy, began brightly with Jordon Mutch forcing Rui Patricio into action in the opposition goal in the opening two minutes.
However, Sporting provided a threat of their own and it took a good block from Damien Delaney and a decent save from McCarthy to deny Adrien Silva and Jefferson, respectively, in the first half.
After the break, Palace again started on the front foot and Jason Puncheon found space but could only shoot straight at Patricio.
Montero entered the fray just after the hour mark and nine minutes later he gave Sporting the lead. McCarthy got a hand to his curling free-kick to knock the ball onto the post, but the rebound struck the goalkeeper’s body and crossed the line.
Scott Dann came close to an equaliser for the Eagles with a powerful header but he was denied by a fantastic save from Patricio.
Sporting sealed the win with four minutes remaining as Montero fired home after Joel Ward’s mistake gifted Islam Slimani an original opportunity.
The match signals the end of Palace’s South Africa tour, and they now return home to prepare for a friendly against Bromley on Thursday night.