Conor Washington and Michael Bostwick scored in the last five minutes for Posh after Josh Simpson had appeared to give the Reds a priceless win.
The pair had earlier scored to put the hosts ahead in the first half following Marvin Elliott’s opener for Crawley, for whom Mathias Pogba made it 2-2.
Elliott had given his side a 29th-minute lead after firing in Izale McLeod’s low cross.
Peterborough equalised in the 43rd minute after Bostwick’s 25-yard free-kick had hit a post, with Washington converting the rebound.
Bostwick then scored six minutes after the break with a low shot only for Pogba to equalise in the 57th minute after a long throw from Kelly Youga had been flicked on to him.
McLeod found Simpson in lots of space down the left-side of the area to strike low into the net in the 66th minute and Town looked on course for a vital victory.
But Bostwick then fired in from the edge of the area before Washington struck in the 90th minute after Gabriel Zakuani had headed against the post.