The home side made the better start and took the lead after 16 minutes. A Gareth Edds shot was blocked but the ball fell kindly to Charlie Barnett, who netted with a fine shot into the top corner from 16 yards.
Posh found little going right and sent on Lee Frecklington in place of Chris Whelpdale after 34 minutes. There was an immediate improvement and they levelled four minutes later with a good finish by Craig Mackail-Smith after an Aaron Cresswell clearance rebounded off Aaron Mclean.
Stand-in keeper John Achterberg came to Tranmere's rescue with three good saves from Mclean, Mackail-Smith and George Boyd soon after half-time but was lucky after 52 minutes when a Boyd effort rebounded off a post.
Opposite number Joe Lewis made a good diving save at the feet of Ed Sonko after an hour and then Ryan Shotton headed over for the Merseysiders following a corner.
Bas Savage thought he had won it for Tranmere in added time but his strike was ruled out for offside.