Roma managed to score an away goal in the 80th minute through Edin Dzeko, but Luis Suarez netted a fourth for Barcelona in the closing moments to leave the Italian side with a mountain to climb in the second leg next week.
Sergio Busquets returned to the Barcelona team following a foot problem, while Sergi Roberto was pushed further forward to accommodate Nelson Semedo as the Spanish giants switched to a 4-4-2 formation.
Luis Suarez had the ball in the back of the Roma net in the seventh minute of the contest, but the striker's effort was rightly ruled offside. Roma then had a decent shout for a penalty down the other end when Dzeko tumbled under a challenge from Semedo, although the referee remained unmoved.
The game's first attempt on target came from Messi in the 12th minute, but Roma goalkeeper Alisson was down to make the save, before Ivan Rakitic hit the outside of the away side's post with a low effort six minutes later.
Rakitic again tried his luck in the 22nd minute following excellent footwork from Messi, but the Croatia international saw his effort deflected high and wide of the target as Barcelona continued to create openings.
Another opportunity for the home side arrived in the 28th minute when Luis Suarez worked some space in a dangerous position before striking towards goal, and only a fine stop from Alisson prevented the Catalan outfit from taking the lead.
Barcelona did make the breakthrough in the 38th minute, however, when Roma captain De Rossi poked the ball past his own goalkeeper in an attempt to prevent Messi from reaching a pass from Andres Iniesta.
A rash challenge from Samuel Umtiti handed Roma the opportunity to level from a free kick just outside the penalty box in the latter stages of the first period, but Pellegrini rose to his feet before sending his effort into the Barcelona wall.
Roma had a super chance to level the scores early in the second half when Diego Perotti was presented with a free header inside the Barcelona box, but the number eight sent the ball wide of the post.
Luis Suarez then fired over the crossbar down the other end after Alisson had failed to gather a shot from Jordi Alba.
Barcelona had their second of the match in the 55th minute, however, and it was another own goal from Roma as Manolas turned past Alisson under pressure from Umtiti, who had bundled a Rakitic cross against the post.
It went from bad to worse for the Italian side just before the hour when Pique slotted the ball into the back of the net after Alisson had saved a Luis Suarez strike straight into the path of the Barcelona centre-back.
Messi sent a blistering volley over the Roma crossbar in the 67th minute as Barcelona looked for a fourth, before the Argentine tested Alisson once again following a low cross from Roberto.
The visitors did get their name on the scoresheet in the 80th minute, however, when Dzeko collected a low cross from Perotti before finding the bottom corner with a smart finish.
Barcelona were not finished though and scored a fourth in the 87th minute when Luis Suarez smashed the ball into the bottom corner following a low cross from Denis Suarez, which has left the Spanish giants on the brink of the semi-finals.
BARCELONA (4-4-2): Ter Stegen; Semedo, Pique, Umtiti, Alba; Roberto (Gomes 83'), Rakitic, Busquets (Paulinho 67'), Iniesta (D.Suarez 85'); L.Suarez, Messi
ROMA (4-3-3): Alisson; Peres, Manolas, Fazio, Kolarov; Pellegrini (Gonalons 60'), De Rossi (Defrel 77'), Strootman; Florenzi (El Shaarawy 72'), Dzeko, Perotti