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 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.
Van Persie cushioned a delightful return pass from Ashley Young's flicked header, allowing the winger to drive over halfway and drill a low cross to the edge of the area for Rooney, who took the ball to his left before cutting a shot back to the near post that Hart had no chance of keeping out.
And United doubled the lead when Antonio Valencia found an overlapping Rafael with a perfectly-weighted pass which the Brazilian crossed into the danger zone. Rooney, who had been allowed to gallop unopposed from his initial pass, could not believe the space on offer which allowed him to tuck his first-time shot beyond Hart.
Ashley Young had a goal incorrectly ruled out for offside before De Gea produced brilliant saves to deny Carlos Tevez and David Silva, but he was unable to keep out a third strike on goal from Yaya Toure, who calmly rolled Tevez's cut-back into the bottom corner.
Van Persie headed Cleverley's cross over before De Gea somehow kept Silva's shot out at the other end when it flicked off his shoulder and onto the crossbar.
City had the momentum though and when Tevez's corner was half-cleared into Zabaleta's path, the Argentinian thrashed home a ferocious shot through a crowded penalty area.
There was one final twist to come, though, as Van Persie stepped up to end City's 37-match unbeaten run on home soil to send United six points clear at the top.
Source: PA
Source: PA