Barcelona's rotated team ended Inter Milan's hopes in the 2019 UEFA Champions League with a 2-1 win on Tuesday in the San Siro.
Ansu Fati came off the bench to grab the winner for the Spanish champions in a game the Italians knew they had to win.
The 17-year-old became the youngest player to score in the Champions League, and the result allowed Borussia Dortmund to advance after a 2-1 victory over Slavia Prague.
Ajax also exited the Champions League after losing 1-0 at home to Valencia. The Dutch champions join Inter in the UEFA Europa League.
Liverpool advance as Group E winners after a convincing 2-0 victory at Red Bull Salzburg, with Napoli claiming second.
Chelsea beat Lille 2-1 to book their progression, but Valencia are the surprise Group H winners after their success in Amsterdam.
Winner: Ansu Fati
It was a match Barca were not expected to win, as their progress was already guaranteed. Inter have been in consummate form in Serie A and needed to equal BVB's result to advance.
Antonio Conte's nightmare occurred as he watched his side have three goals correctly ruled out for offside. The Italian boss then saw Fati steal the headlines, burying Inter's hopes in the process.
The teenager came on for the last five minutes, replacing Carles Perez, and seconds later he found the back of the net.
Fellow substitute Luis Suarez set up the winner, allowing Fati to become the youngest to hit a goal in Europe's premier competition.
The player joined La Masia in 2012 from the Sevilla academy, and he has earned his progression through to the first team.
Fati only turned professional last summer and became his club's youngest scorer in the 2-2 La Liga draw with Osasuna in August.
The player now has three goals this season in La Liga and Europe from 12 appearances, including four starts.
Ernesto Valverde will be excited by the prospect he has on his hands, and Barca will believe they might have yet another burgeoning superstar developed from their famed academy.
As usual, the former Chelsea and Juventus coach was fascinating to watch in his technical area as he kicked every ball and displayed every emotion. However, his team failed to get the job done against a weakened opponent.
Barca's second unit is better than most team's first, but Inter had the edge with their prolific strikers on the park.
It was a frustrating night for Lautaro Martinez and Romelu Lukaku. The pair combined for the equaliser on the stroke of half-time, but the forwards were caught offside as the ball ended up in Barca's net three times.
The Spaniards were not at their best in the San Siro. However, Inter lacked the composure needed to earn the three points on offer.
Conte packed the midfield as he attempted to squeeze the game, but the visitors got in behind on multiple occasions.
Lionel Messi's absence didn't stop the Blaugrana's ambitions to win, and Fati's late goal was on the cards as Inter failed to defend their lines.
Conte will fancy his chances in the Europa League, but he will only be able to imagine what his side could have done in the latter stages of the Champions League.
The Bundesliga giants hedged their bets on Tuesday in the knowledge their destiny was partially in Inter's hands. However, an expected home victory would take them through if the Italians failed against Barca.
That's how the night turned out. BVB's 2-1 win over Prague was enough to see them into the last 16.
10 points from their six games was ample for the Germans in the end. Goals from Jadon Sancho and Julian Brandt allowed their progression.
Sancho bagged a 10th-minute opener, but Prague rallied and deserved Tomas Soucek's equaliser two minutes before half-time.
The Germans reset in the second half and completed their needed victory, as Brandt struck the winner shortly after the hour mark.
BVB know the Champions League knockouts well, and they will be a tough opponent for any side that draws them.
One of the surprises of the competition came in the Dutch capital after Valencia dumped Ajax out of the tournament.
Last season's semi-finalists failed to hit the back of the net, and Rodrigo's 24th-minute goal was all the visitors needed to advance.
Ajax have been riding high in the Eredivisie this season, but despite plenty of chances, the Amsterdam team could not produce the result they required.
A draw would have taken Erik ten Hag's men safely through, but Los Ches dug deep to win Group H.
Ajax held the majority of their squad together from last season. However, their best players could now become targets after slipping out of the Champions League, with the January transfer window approaching.