The Robins overcame the dismissal of defender Jay McEveley for a dangerous challenge late in the first half which forced off Posh hot shot Britt Assombalonga with a facial injury.
Mark Cooper's men trailed 2-1 at that point after being undone by a rip-roaring start from the hosts.
Grant McCann's corner was headed into his own net by Swindon defender Raphael Branco in the 10th minute and Kyle Vassell soon doubled the advantage when firing in his first Posh goal.
Nile Ranger halved the arrears for Swindon just after the half hour but McEveley was dismissed by referee Paul Tierney soon after.
Swindon levelled in fortunate fashion when Posh defender Shaun Brisley sliced a Ben Gladwin cut-back into his own net in the fourth minute of first-half stoppage time.
And that was the way it stayed as the hosts failed to make their numerical advantage count in the second period.
With five minutes remaining, the players were taken off the pitch as a spectator was taken ill. The game was restarted and completed in subdued mood after the fan had been treated and taken away on a stretcher.