Former Barcelona defender Jeremy Mathieu scored an own goal against his old club as Sporting Lisbon's hopes of advancing from Group D ended.
Sporting needed to win and hope Juventus slipped up away at Olympiakos.
However, the Italian champions secured runners-up spot with a 2-0 win in Greece, while Barca won a scrappy game.
Paco Alcacer's glancing header put the hosts ahead before Mathieu inadvertently put past his own keeper while trying to make a clearance.
Lionel Messi started on the bench for the second successive Champions League for Barca.
Barcelona will be seeded when the draw for the knockout stage takes place next Monday at Uefa headquarters in Nyon, Switzerland.