The Catalan giants saw off Chelsea to reach this stage, whilst Roma narrowly overcame Shakhtar Donetsk on away goals.
Barcelona were far from their best and struggled for rhythm for much or the game against the Italian side. Barca benefitted from two own goals each from Daniele De Rossi and Kostas Manolas.
First Daniele de Rossi slid into his own net in a bid to keep the ball away from Lionel Messi in 40th minute, then in 55th minute Kostas Manolas got his name on the scoresheet bundling the ball in after a scramble with Samuel Umtiti who claimed the goal before some very deliberate badge pointing in his celebration.
Manolas’ own goal was the 13th that Barcelona have benefited from in the Champions League; only Real Madrid (15) have benefited from more.
Gerard Pique got the third from a rebound after Alisson pushed out Luis Suarez’s shot in 59th minute.
In 87th minute, Roma then got their away goal. Perotti crossed from the left and Edin Dzeko got between Barcelona defenders to steer the ball past Marc-Andre ter Stegen.
But with his first goal for over a year in the Champions League, after failing to score with his first 30 shots in the Champions League this season, Suarez finally scored with his 31st effort and he made it 4-1.
The result will be enough to see them through save a remarkable turnaround in next week’s second leg, but they will need to find another gear to win the competition.
On a night when many of Barca’s star names looked far from their best, Ivan Rakitic as man of the match, held things together for the La Liga leaders in the middle of the park. Neat and tidy in possession, the Croatian almost broke the deadlock in the first half, beating Alisson but not the post with his strike. He also played a part in his side’s second goal, his cross picking out Samuel Umtiti before Kostas Manolas put the ball into his own net.
On Sunday, both teams will return to their own league. In La Liga action, Barcelona host Leganes at the Nou Camp and Roma host Fiorentina in Serie A. While the second leg of the Champions League quarter-final tie between the two sides takes place at the Stadio Olimpico next Wednesday.