Arsenal blew the Barclays Premier League title race wide open after finally finding the character of champions to beat leaders Manchester United 1-0 at the Emirates Stadium.
Aaron Ramsey's second-half goal - his first in the Premier League since January 2010 - saw United's lead remain at just three points from Chelsea, whom they face next week at Old Trafford.
The Gunners may have seen their own title ambitions extinguished following a run of costly draws before defeat at Bolton last Sunday, but at least gave their frustrated fans renewed hope next season might just be different for Arsene Wenger's young side.
Ramsey had only been in the team because of a thigh injury to captain Cesc Fabregas, but his well-taken strike on 56 minutes was just rewards for a high-tempo performance and meant the officials' miss of a penalty for handball by United skipper Nemanja Vidic in the first half did not eventually prove decisive.
Arsenal started brightly, with Theo Walcott causing problems down the right, and Jack Wilshere dragged an early chance wide from 15 yards after a poor clearance by United skipper Vidic.
Gael Clichy whipped in a low cross from the left but as Walcott arrived in the six-yard box, he was stretching and could only shin the ball over the crossbar.
It continued to be one-way traffic and, after 15 minutes, Patrice Evra got a toe to Wilshere's low centre across the goal with Walcott ready for a tap-in at the far post.
After so much pressure, United then cut Arsenal apart on the break.
Fabio burst down the right and into the area before pulling the ball back to Javier Hernandez, with Bacary Sagna making a last-gasp block just as the Mexican shaped to shoot.
There was then a massive let-off for United when Vidic knocked Walcott's cross from the right behind with his hand, taking it off the head of van Persie.
However, neither the referee or nearside assistant Andy Garratt spotted it - leaving the Dutch forward fuming.
When the dust settled, Wayne Rooney had a goalbound 20-yard shot blocked, before going into the book on 41 minutes for pushing Wilshere over on the far touchline.
Arsenal made a change for the second half with Samir Nasri, who tweaked a hamstring, replaced by Russia winger Andrey Arshavin.
United were awarded a free-kick some 22 yards out when Park was bundled over by Song. Rooney struck his effort over the wall, but Wojciech Szczesny dived to his right to make a good two-handed save.
Arsenal slowly got themselves back into a rhythm, with Sagna angling a low drive across goal before they swept into the lead on 56 minutes.
Ramsey fed van Persie, who charged down the right and into the area before cutting the ball back to the penalty spot, where the Welshman arrived on cue to dispatch a cool finish low into the far corner for a first Arsenal goal in over a year.
United now needed a response, and Vidic headed down and wide from a corner.
Tempers boiled over when Song went in on Nani and looked to have won the ball only for referee Foy to book the Cameroon midfielder, which saw several players involved in a scuffle.
Park released Evra down the left channel, but Clichy covered across quickly to bundle the ball out for a corner.
There was concern for Arsenal when centre-half Johan Djourou fell awkwardly and had to be replaced by Sebastien Squillaci on 60 minutes.
United sent on Dimitar Berbatov, back from a groin injury, and had another free-kick in a dangerous position following Ramsey's needless handball. Szczesny, though, was right behind Rooney's flick.
The young Pole then made an impressive save at the near post after Nani was played in by a quick break from Rooney.
Van Persie chipped the ball across goal after breaking down the left as Arsenal looked for a killer second goal.
With five minutes left, United sent on Michael Owen and the former England striker was screaming for a penalty when he looked to have been tripped by Clichy, but again the officials were unmoved.
Arsenal closed out four minutes of stoppage time to claim a victory which was probably greeted with just as loud a cheer across in west London.Reuse content