Massimo Luongo and substitute Tijane Reis both shot over from 12 yards as the Robins crashed out, with Wes Foderingham's save from Danny Swanson not enough to rescue his side.
Swindon should have had a penalty as early as the 13th minute when Dany N'Guessan was hauled to the ground by Craig Alcock but referee Keith Stroud waved away the appeals.
But they took the lead 13 minutes before half-time after some comical Posh defending.
Luongo whipped in a teasing left wing cross and Alcock smashed a clearance against N'Guessan before Alex Pritchard tucked home the loose ball.
N'Guessan hit a post before Britt Assombalonga drew Posh level 15 minutes from time with his 24th goal of the season, coolly heading Michael Bostwick's cross beyond Foderingham.
That is how it stayed until the spot-kicks earned Posh a place at Wembley.
- Sports & Recreation
- Craig Alcock
- Wes Foderingham
- Danny Swanson