It was only Barcelona's fourth loss of the season and first in the Champions League this campaign and ended any hopes of a Treble for Ernesto Valverde's team.
The hosts were looking to overturn a 4-1 deficit from the first leg at the Camp Nou and were on their way in the sixth minute when Edin Dzeko expertly settled a long ball over the top of the Barcelona defence from Daniele De Rossi and poked the ball into the back of the net with his next touch.
The early striked seemed to unsettle Barcelona, who haven't lost a match at any stage of the Champions League so far, and Roma played the rest of the half firmly on the front foot.
Patrik Schick nearly had a second for Roma just before the half-hour, but his header from a Federico Fazio cross when left all alone in the center of the Barca penalty area bounced just wide of the far post.
Roma reduced their aggregate deficit to just one goal before the 60-minute mark when De Rossi dispatched a spot kick after Gerrard Pique was whistled for a penalty for hauling Dzeko down in the penalty area.
Chasing what would be the winning goal, Roma's Radja Nainggolan went forced a save from Marc-Andre ter Stegen before De Rossi missed with a header from another Fazio cross.
Ter Stegen then denied what looked like a sure goal, palming the ball off the line on a close-range effort from Aleksandar Kolarov after Alessandro Florenzi picked him out at the back post.
But minutes later, Roma found the goal they were chasing when Manolas popped up at the near post and redirected a corner kick past Ter Stegen to give his team a 3-0 lead and the edge on aggregate thanks to an away goal in the first leg.