City boss Derek McInnes made one change from the side that was set to face Watford on Boxing Day before the conditions saw the match postponed, with Paul Anderson in for Liam Fontaine and he took just five minutes to make an impact, nodding home Baldock's ball from close range.
The visitors had lost all 14 matches when they had conceded first this season and their chances of ending that run took a real blow in the 12th minute when in-form striker Tomlin was sent off. The Posh forward was given a straight red card when he seemed to elbow City left-back Greg Cunningham.
But just seven minutes later Darren Ferguson's men were level when Tom Heaton fouled George Boyd after a poor header back to his keeper from Cunningham. Grant McCann stepped up and squeezed his spot-kick beyond the former Cardiff keeper to draw the 10 men level.
It was no surprise that it was Anderson and Baldock who combined to put their side back in the lead eight minutes before the break. Baldock swapped passes with the former Liverpool winger before beating Bobby Olejnik for his first goal in open play for 16 games.
A minute before the break Baldock was at the heart of the action once more and came inches away from grabbing his second of the match but his shot from six yards crashed off the post.
The Robins looked to have put the game to bed just before the hour mark when Stephen McManus met Albert Adomah's corner at the back post with a downward header.
Five minutes later the home side did make the points safe when Baldock sent Olejnik the wrong way to notch his ninth of the season from the penalty spot after Anderson was fouled by Michael Bostwick.
Peterborough continued to struggle against their rivals in the battle for survival and they could have been 5-1 down had Jon Stead's 35-yard thumping effort not hit the bar. Just two minutes after replacing Stead it was Steven Davies' turn to rattle the woodwork from another Adomah cross.
Dwight Gayle then grabbed a late consolation with his 13th of the season, sliding in from close range.