BARCELONA, Spain — Arsenal's only shot of night turned the game — in favor of Barcelona.

Robin van Persie was ejected in the 56th minute for shooting after the referee had blown his whistle, Xavi Hernandez scored as Barcelona pressed its man advantage and Lionel Messi followed with a penalty kick for his second goal of the night.

With a 3-1 victory Tuesday night and a 4-3 aggregate win, Barcelona advanced to the Champions League quarterfinals and eliminated the Gunners for the second straight year.

"It's a total joke," Van Persie said. "I tried to explain there were 95,000 people jumping up, how can I hear the whistle? He's been bad all evening, whistling against us. I don't know why he's here tonight. We feel betrayed a bit, when it was 1-1 it was all to play for, and in my opinion this referee killed the game."

In the night's other game, Ukraine's Shakhtar Donetsk beat visiting Roma 3-0 and advanced on 6-2 aggregate to reach the quarterfinals for the first time.

With Barcelona trailing 2-1 from the first leg in London three weeks ago, Messi scored in the third minute of first-half injury time.

But Barcelona defender Sergio Busquets headed Samir Nasri's corner kick into his own net in the 53rd. After Van Persie was sent off by Swiss referee Massimo Busacca for his second yellow card, Xavi scored in the 69th and Messi got his 45th goal of the season two minutes later after Pedro Rodriguez was fouled by Laurent Koscielny.

Van Persie's attempt that didn't count, which followed an offside call, was the only shot all night by the usually offense-minded Gunners, who were outshot an incredible 19-0. Barcelona had 68 percent possession and completed 738 passes to Arsenal's 199.

"They attack less. Maybe they play to keep the result," Barcelona coach Pep Guardiola said. "The reality is that they were not able to string together three consecutive passes and they were not able to shoot once on goal."

Messi scored in the third minute of first-half injury time when he was played clear into the area by Andres Iniesta, then flicked up and over onrushing goalkeeper Manuel Almunia before volleying the ball into the net.

"To talk about if it's one of Messi's best goals, there's no point — he scores such great goals they become normal," Guardiola said.

Almunia had entered in the 19th minute after goalkeeper Wojciech Szczesny had dislocated a finger, apparently while stopping a shot by Daniel Alves.

Nasri won the corner kick that led the tying goal by outmuscling Javier Mascherano, starting because Busquets was dropped back to central defense due to Carles Puyol's knee injury and Gerard Pique's one-game suspension for yellow card accumulation.

Van Persie received his second yellow card in the 56th. The Dutch forward motioned he shot because he didn't hear the whistle due to noise from the crowd of 95,486 in Europe's largest stadium.

"One-second — it's a joke," Van Persie said of the time between the whistle and his shot.

Xavi Hernandez tied the aggregate score on a shot that deflected off an Arsenal player. He had collected the ball after David Villa guided Iniesta's short pass onto his path.

Messi's penalty kick gave him six goals in four games against Arsenal.

Busacca gave five yellow cards to the Gunners and none to the Blaugrana. Van Persie was given his first yellow card in the 45th minute for knocking over Alves.

Arsenal manager Arsene Wenger thought the ejection changed the match.

"I just spoke to UEFA people, and they are shocked as well," Wenger said. "You promise a fantastic football match, but what for? How he did it, frankly, it's embarrassing for the game."

Messi, the two-time FIFA player of the year, has 45 goals this season and a Barcelona-record 33 in European competition, two more than Rivaldo. He leads the Champions League with eight goals this season.

Arsenal had one late chance.

With the Gunners needing only to score once to tie the aggregate and win on the away-goals rule, substitute Nicklas Bendtner's late run on goal was thwarted by Mascherano's tackle.

Van Persie returned from a knee injury and Arsenal captain Cesc Fabregas, in his first game at Barcelona since leaving its youth academy, came back from a hamstring problem.

"I take full blame for the result tonight," Fabregas said via Twitter. "One of the worst moments of my life. I apologise."

At Donetsk, Tomas Huebschmann scored in the 18th, Willian in the 58th and Eduardo da Silva in the 87th. Shakhtar has not lost at home in more than two years. Roma defender Philippe Mexes was ejected in the 40th for his second yellow card, for a foul on Luiz Adriano.

On Wednesday, Tottenham hosts AC Milan with a 1-0 advantage and Valencia is at Schalke after a 1-1 tie in the first leg.