Rory McAllister fired the hosts ahead but recent Forfar signing Steven Craig soon levelled with a left-foot effort.
Andy Ryan pounced on a Graeme Smith error to put Forfar in front and Peterhead then had Steven Noble sent off for violent conduct.
However, Shane Sutherland equalised before the break and, in the second half, substitute Leighton McIntosh struck to give the home side victory.
Peterhead came from behind to beat Forfar Athletic in Scottish League One.