Lionel Messi scored twice in his first start in nearly two months as Barcelona thrashed Roma 6-1 in the Champions League on Tuesday.
After appearing as a substitute in Barca's Clasico win over Real Madrid on Saturday, Messi returned to the starting lineup and was an immediate threat, forcing a good save from Wojciech Szczesny, having a goal ruled out for offside and missing just wide.
But Luis Suarez was first to open the scoring on 15 minutes when Neymar passed across for the Uruguayan to tap in at the far post.
Three minutes later, Suarez played a ball over the top to Messi, who chipped Szczesny to double Barcelona's lead.
Suarez made it 3-0 shortly before half-time when Roma's half-clearance lined up perfectly for him to finish with a spectacular volley from 15 yards out.
In the second half, Messi raced in on the side of box and passed across to Gerard Pique to score easily.
Messi then found his second goal four minutes later after a display of Barcelona tiki-taka left him alone in centre of the box. Szczesny saved his initial effort before Messi's follow-up completed an ideal return.
Barca added their final goal in the 77th minute when Adriano followed up on Neymar's saved penalty attempt.
Roma's Eden Dzeko saw a late penalty attempt saved but he was later able to find a consolation goal with the last kick of the game.
Barcelona will finish winners of Group E, though they had already advanced before kickoff thanks to Bayer Leverkusen drawing 1-1 at BATE Borisov earlier in the day.
The Belarusian side had the Leverkusen goalkeeper to thank for their second-minute opener, when Mikhail Gordeychuk cut inside and unleashed a shot that slipped through Bernd Leno's legs.
But Leverkusen equalised in the second half when Hakan Calhanoglu's chipped pass found Admir Mehmedi, whose soft volley from a wide angle went in at the far post.
Both sides will need a result in their final game to have a chance of advancing. Leverkusen are level on five points with second-place Roma while BATE are a point back but still in contention despite being bottom of the table.
Alexis Sanchez had two goals and an assist as Arsenal kept alive their hopes of advancing to the knockout stage with a 3-0 win over Dinamo Zagreb.
Only wins in their final two matches will see Arsenal finish second, and the Gunners started well when Sanchez found Mesut Ozil, whose diving header put his side ahead in the 29th minute.
Sanchez doubled the lead four minutes later when Nacho Monreal pounced on a poor clearance and fed the Chilean in the centre of the box.
Sanchez grabbed his second of the game when he latched on to Joel Campbell's reverse pass before rounding goalkeeper Eduardo and lifting into the net.
Arsenal also needed Bayern Munich to win on Tuesday, and the German champions did so emphatically, 4-0 over Olympiakos to clinch top spot in Group F.
Douglas Costa scored on eight minutes as keeper Roberto Gago could only parry Jerome Boateng's shot into his path.
Robert Lewandowski put Bayern two goals up when Kingsley Coman's blocked shot fell to him at the top of the box, and Thomas Muller made it 3-0 after Coman's wide shot was headed back across goal by Arjen Robben for Muller's tap-in.
Although Holger Badstuber was sent off in the second half for bringing down Brown Ideye, Coman found his goal with a soft header in the 70th minute to cap the scoring.
Chelsea took the lead in Group G with a simple 4-0 win at 10-man Maccabi Tel Aviv.
Gary Cahill provided the opener on 20 minutes when keeper Predrag Rajkovic could only parry his header onto the post, before the Blues defender followed up with a tap-in.
Former Chelsea player Tal Ben Haim was sent off shortly before half-time for a wild tackle on Diego Costa, and the visitors took advantage with two goals in a five-minute span in the second half.
Willian curled home a trademark free kick before Oscar headed in from Baba Rahman's cross from the left.
Chelsea scored their fourth in the final moments when Kurt Zouma headed in Oscar's corner from close range.
Chelsea are level on 10 points with FC Porto, who missed an opportunity to advance by falling 2-0 at home against Dynamo Kiev.
Andriy Yarmolenko scored from the penalty spot in the first half after Giannelli Imbula was whistled for a foul on the edge of the box.
Derlis Gonzalez added a second goal after an Iker Casillas howler as Kiev maintained their hopes of advancing. They are two points back in third place with their final game at home against point-less Maccabi.
Zenit St. Petersburg maintained their 100 percent record and secured the top spot in Group H by defeating Valencia 2-0.
Oleg Shatov scored the first goal in the 15th minute as he stayed just onside to receive Artem Dzyuba's pass at the top of the box and slip a shot past Valencia keeper Jaume.
Dzyuba doubled his side's lead with a tap-in on 74 minutes, and all hopes of a Valencia comeback ended when Ruben Vezo was sent off 10 minutes from time.
Valencia could have secured their spot in the knockout round with a victory but now must wait for their final fixture at home against Lyon next month.
Kalifa Coulibaly scored following a corner kick in the 95th minute to give Gent a 2-1 win at Lyon.
After Jordan Ferri's seventh-minute opener for Lyon, Danijel Milicevic responded with a free kick in the 32nd for the visitors
The Belgian side moved a point ahead of Valencia into second place with one round to play, while Lyon were eliminated.