Arsenal trailed 2-0 at the break but Van Persie's spot kicks either side of a Theo Walcott equaliser spun the match on its head at The Emirates and sent Arsene Wenger's side through to a tie at either Sunderland or Middlesbrough.
Sunderland were earlier held 1-1 at home by Boro with halftime substitute Fraizer Campbell equalising for the Premier League side after Barry Robson had put the Championship (second division) outfit ahead early on at the Stadium of Light.
Arsenal were booed off at halftime as Villa struck twice with goals by Richard Dunne and Darren Bent.
They were given a lifeline shortly after the break when Dunne brought down midfielder Aaron Ramsey and Van Persie beat Villa keeper Shay Given from the penalty spot.
Three minutes later Walcott made it 2-2 when the ball cannoned back into the net off the England winger from an attempted clearance by Alan Hutton after the Arsenal player's initial effort had been saved by Given.
The comeback was complete in the 61st minute when Bent's mistimed sliding tackle on Laurent Koscielny gave Van Persie the chance to score from the spot again and move level on 120 goals with fellow Dutchman Dennis Bergkamp on the Arsenal scoring charts.
"If you're 2-0 behind it's always going to be hard to come back," Van Persie told ESPN. "It was a crazy (first) 16 minutes in the second half, which changed the entire game.
"Credit to us all, because we worked hard and we're still in it, which is vital.
"To score 120 goals for Arsenal is a big honour. Dennis Bergkamp is a big legend and I have massive respect for him, so to score as many goals as him at Arsenal is a great honour."
In the early kickoff, Middlesbrough had threatened to shock their north-east rivals when Robson volleyed them ahead.
However, Sunderland replied after the break when former Manchester United front man Campbell, playing his first game for 18 months after a serious knee injury, capitalised on a Robson error to earn his side a replay.