Two goals down to a first-half Wayne Rooney double, Manchester City thought they had snatched a point when Pablo Zabaleta followed up Yaya Toure's strike by driving home five minutes from time.
But after Rafael had been fouled on the edge of the area, Van Persie's free-kick flicked off Samir Nasri before cannoning in off the far post.
As Manchester United celebrated, Rio Ferdinand was struck by an object which drew blood from a cut close to his eye.
A supporter then ran onto the pitch and had to be restrained by Joe Hart before being carted away by stewards.
Sir Alex Ferguson then seemed to exchange words with former United striker Carlos Tevez before referee Martin Atkinson brought an end to a breathless afternoon.
Everton scored twice in the last couple of minutes to snatch a well-deserved 2-1 victory over a Tottenham side who looked to have escaped the Goodison Park fortress with all three points.
Despite dominating, David Moyes' side found themselves trailing to Clint Dempsey's 76th-minute deflected strike.
However, Steven Pienaar headed an 90th-minute equaliser and Nikica Jelavic turned home the winner in added time to extend their unbeaten home league record to 12 matches.
Liverpool proved they could win without talismanic striker Luis Suarez as they fought from behind to win 3-2 at West Ham.
Uruguay international Suarez was serving a one-match ban but the Reds struck twice late in the game to seal a win that sees them leapfrog the Hammers in the table.
Former West Ham defender Glen Johnson opened the scoring for the visitors with a tremendous effort before a Mark Noble penalty and Steven Gerrard own goal turned the game in West Ham's favour before the break.
It was another West Ham academy graduate in substitute Joe Cole who pulled the visitors level in the second half with a James Collins own goal completing the comeback for Liverpool.
Premier League Results / Reaction