Ricky Lambert headed the home side in front within 16 minutes after Jason Puncheon's cross to the far side of the post was not dealt with by United right-back Rafael.
But the Dutch hitman Van Persie equalised seven minutes later. Antonio Valencia's cross was not intercepted as right-back Nathaniel Clyne slipped and Van Persie slotted home with a fine finish.
Meanwhile, 10 minutes into the second half, another slip resulted in a goal, this time it was United's left-back Patrice Evra, whose unfortunate slip allowed Lambert's pass reach Morgan Schneiderlin who slotted home comfortably.
United were given a chance to equalise again after Jos Hooiveld conceded a penalty as brought down Van Persie, but the 29-year-old's chip was saved by Kelvin Davies.
The home were shocked three minutes from the time when Rio Ferdinand's header hit the bar and the rebound fell to none other than Van Persie who smashed home his second goal.
A minute into extra-time and United were pushing forward. Nani's cross found Van Persie whose clever header beat Davies in goal to hand United three points right at the end.