The visitors had already secured top spot in Group F - the 13th successive season they have won their group - but ended the section in winning style courtesy of goals from Carles Perez and substitute Ansu Fati, the latter of whom became the youngster goalscorer in Champions League history.
Inter, who needed to match or better Borussia Dortmund's result against Slavia Prague, squandered a host of chances and saw three goals disallowed for offside, but ultimately Romelu Lukaku's equaliser at the end of the first half would not have been enough even if Fati had not struck within a minute of his introduction.
Ten-man Dortmund held on for victory at the Westfalenstadion to mean that only a win would do for Inter too, and the Serie A leaders fell short to crash out in the group stages for a second successive season.
Barcelona boss Ernesto Valverde made seven changes to his side with the likes of Lionel Messi, Luis Suarez and Gerard Pique among the absentees, and Inter Milan quickly looked to take advantage of their weakened opponents by getting on the front foot early.
Danilo D'Ambrosio should have done better at the end of a counter-attack after just five minutes when he blazed over the crossbar, and shortly afterwards Lukaku saw a thumping finish correctly disallowed for offside.
The home side's need for a goal increased early on as Borussia Dortmund took the lead against Slavia Prague, but they also needed to be wary at the other end and Perez fired a warning shot of what was to come when he latched on to a through-ball and drew a smart low save from Samir Handanovic.
Inter went straight up the other end and created another good chance of their own as Lukaku cut onto his left foot inside the area and looked to finish, only to be thwarted by a fine last-ditch block from Clement Lenglet.
It took the hosts until the 19th minute to draw a first save from Barcelona debutant Neto, who parried away a powerful Cristiano Biraghi strike before dealing with a teasing free kick from deep moments later.
Inter suffered a hammer blow midway through the first half, though, as Barcelona took the lead through Perez, who reacted sharply to a loose ball inside the box. Antoine Griezmann's pass in towards the feet of Arturo Vidal came off Diego Godin to take it into the path of Perez, who made no mistake for his second Barcelona goal.
It could have been 2-0 10 minutes later too as Inter failed to clear their lines from a corner, only to be handed a reprieve as Lenglet dragged his finish wide when he should have scored.
The hosts almost made the most of that let-off within minutes as Lautaro Martinez, who has been heavily linked with a move to Barcelona in recent months, took the ball down on the edge of the box before stinging the palms of Neto with a fine half-volley.
Antonio Conte's side began to turn the screw again towards the end of the half, with D'Ambrosio nodding wide before the equaliser finally arrived with only one minute remaining until the interval.
Martinez held the ball up well before dropping it back to Lukaku, whose 20-yard effort took a deflection on its way past Neto. The goal capped a perfect minute for the hosts after Slavia Prague had equalised in Dortmund moments earlier, suddenly putting Inter back into a qualifying position as they went in for half time.
The Italian's hopes were still on a knife edge, though, and they needed another good low stop from Handanovic shortly before the hour mark to prevent Barcelona from regaining their lead.
A Dortmund goal was as damaging to Inter's qualification chances as conceding one of their own, though, and news filtered through from Germany that the Bundesliga outfit had gone back in front seconds before Lukaku squandered a glorious chance to double his tally, being thwarted by Neto from point-blank range.
The former Manchester United spurned another clear opening moments later when he was slipped through by Martinez and took the ball around Neto, but his first touch was too heavy and the ball rolled behind for a goal kick before he could take advantage of the empty net.
Valverde turned to Suarez and Frenkie de Jong off the bench with just under half an hour remaining and both were involved shortly after their introduction to help tee up Vidal, who passed his finish a yard or so wide from just outside the area.
Inter's urgency cranked up another notch heading into the final 20 minutes with three chances in quick succession, the first of which saw the lively Martinez flick the ball away from Lenglet before firing wide of the target.
Lukaku then forced a solid low save from Neto with a first-time effort from out wide before Martinez thought he had given his side the lead, only for his skilful chest and finish to be correctly ruled out for offside.
The hosts were then denied by the flag for a third time when Lukaku was penalised for being slow to get back onside, ensuring that Martinez's poacher's finish from close range with 10 minutes remaining would not count.
News that Dortmund had been reduced to 10 men raised belief slightly, but Inter's desperation to score a winner left them open at the back and Perez missed a presentable opening before Barcelona got the winner to kill off any remaining hopes.
Valverde introduced 17-year-old Fati as his final change, and the youngster made an immediate impact one minute later by firing a loose ball in off the post from outside the area - his first Champions League goal and one which secured Barcelona their 150th victory in the competition.
INTER MILAN (3-5-2): Handanovic; Godin, De Vrij, Skriniar; D'Ambrosio (Politano 75'), Vecino, Brozovic, Valero (Esposito 77'), Biraghi (Lazaro 69'); Lukaku, Martinez
BARCELONA (3-1-4-2): Neto; Todibo, Umtiti, Lenglet; Rakitic (De Jong 63'); Wague, Vidal, Alena, Firpo; Perez (Fati 85'), Griezmann (Suarez 62') body check tags ::