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.
Barca had drawn their previous two Champions League games 0-0 but Paco Alcacer’s glancing header and Mathieu’s misdirected clearance secured victory.
|Champions League last-16 draw|
|Teams cannot be drawn against one another from the same country or from the group they have advanced from.|
|Seeded teams [so far]: Barcelona, Besiktas, Tottenham, Manchester City, Manchester United, Paris St-Germain and Roma.||Unseeded teams [so far]: Real Madrid, FC Basel, Bayern Munich, Chelsea and Juventus.|
Lionel Messi started on the bench for the second successive Champions League for Barca.
Messi came on moments after Alcacer’s 59th-minute goal put the hosts ahead.
Earlier, Luis Suarez was denied by Rui Patricio’s leg after getting the better of former Liverpool team-mate Sebastian Coates.
Sporting’s best chance fell to Dutch striker Bas Dost, whose first-time shot from close range was brilliantly kept out by Jasper Cillessen.
“We try to do things as well as we can,” said Barca boss Ernesto Valverde afterwards. “Sometimes we play wonderfully and sometimes less so.”
Barcelona will be seeded when the draw for the knockout stage takes place next Monday at Uefa headquarters in Nyon, Switzerland.