Barcelona became the first team to qualify for the Champions League last 16, despite Inter's late leveller on Tuesday.
Barca converted just one of their 27 attempts at Samir Handanovic's goal, when Malcom fulfilled the role of super-sub, but Mauro Icardi pounced on his only chance to salvage Inter a 1-1 draw.
Lionel Messi travelled to San Siro but watched from the stands as he continued to recover from an arm injury. At the back, Clement Lenglet stayed on in place of the injured Samuel Umtiti and Sergi Roberto was again preferred to Nelson Semedo.
However, a change up top saw Ousmane Dembele replace former Inter man Rafinha on the right wing, despite the Brazilian scoring in Barca’s 2-0 win against the Nerazzurri when the sides first met.
The Italians, meanwhile, were brimming with confidence after seven consecutive Serie A victories, including Saturday’s 5-0 thrashing of Genoa.
Radja Nainggolan missed the match at Camp Nou but was back in Inter’s midfield and part of the Roma team who knocked the Blaugrana out of the Champions League at the quarter-final stage last season.
It took all of 90 seconds for Dembele to sting Samir Handanovic’s gloves from distance, while Luis Suarez’s audacious flick with the outside of the boot drifted just past the far top corner.
There were a series of Barca chances as first Milan Skriniar scrambled clear in front of goal, before Suarez’s angled drive flashed across the six-yard box.
Coutinho’s snapshot was beaten away at full stretch and Handanovic was again alert as a ricochet fell kindly for Suarez just inside the penalty area.
Handanovic continued his remarkable run of form with a miraculous save on Ivan Rakitic after a three-on-two situation and when Suarez turned in on the rebound, the ball had already gone out of play.
Coutinho forced another save from Handanovic at his near post and Dembele dribbled past Kwadwo Asamoah to test the goalkeeper again, Suarez firing into side-netting.
Inter had a period of pressure just after the hour mark, with Matteo Politano nodding an Ivan Perisic cross just wide, but Barca finally broke through with substitute Malcom.
He had just come on when Coutinho shrugged off his marker and set his compatriot up for a left-foot strike, which squirmed under Handanovic’s arm to slide into the bottom-left corner.
It was only what Barca deserved, but they hadn’t counted on the deadly finishing of Icardi.
Substitute Lautaro Martinez’s roll across was flicked on by Matias Vecino and the striker pounced, turning on a sixpence to fire in from close range.
Inter 1-1 Barcelona
Icardi 87 (I) Malcom 83 (B)
Inter: Handanovic; Vrsaljko, De Vrij, Skriniar, Asamoah; Vecino, Brozovic (Lautaro 85); Politano (Candreva 81), Nainggolan (Valero 63), Perisic; Icardi
Barcelona: Ter Stegen; Sergi Roberto, Pique, Lenglet, Alba; Rakitic, Busquets, Arthur (Arturo Vidal 74); Dembele (Malcom 81), Suarez, Coutinho
Referee: Marciniak (POL)