Lionel Messi came through for Barcelona when it counted the most.
He scored a penalty kick, his second goal of the night, to help Barcelona beat the Arsenal 3-1 Tuesday and advance in the Champions League.
Messi scored after Arsenal captain Cesc Fabregas gave away the ball with a back heel pass.
Andrés Iniesta played Messi clear, and Messi 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," said Barcelona coach Pep Guardiola.
With a 4-3 aggregate win, Barcelona moves forward to the quarterfinals. The Gunners were eliminated for the second straight year.
Xavi Hernández scored for Barcelona.
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.
Robin 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," 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, who in January was named FIFA Player of the Year, scored after Arsenal captain Cesc Fabregas gave away the ball with a back heel pass. Andres Iniesta played Messi clear, and Messi flicked up and over onrushing goalkeeper Manuel Almunia before volleying the ball into the net.
Almunia had entered in the 19th minute after goalkeeper Wojciech Szczesny had dislocated a finger, apparently while stopping a free kick 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.
"If there were four, five, six seconds in between, you can make a check. One second? It's a joke," Van Persie said of the time between the whistle and his shot.
Hernández tied the aggregate score on a shot that deflected off Arsenal's Bacary Sagna. 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 and Almunia.
"Again, Leo made the difference," Xavi said.
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 barging into 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."
Guardiola said the Arsenal manager had one request for him.
"Wenger told me to congratulate the referee," he said.
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 had come back from a knee injury and Fabregas, in his first game at Barcelona since leaving its youth academy, had returned 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.
Based on reporting by The Associated Press.