Adam Reach's precise 25-yard set piece for Bradford City proved to be the difference between them and 10-man Peterborough United at Valley Parade tonight.
The Middlesbrough loanee gave the Bantams a 27th-minute lead which they held until the final whistle, with Posh's attacking threat nullified after the first-half dismissal of Shaun Brisley for two quick bookings.
Peterborough were the brighter of the two teams in the opening quarter of an hour, with Jack Payne and Tommy Rowe shooting wide with early sighters but Bradford soon moved into the ascendancy.
Raffaele de Vita forced a good save from visiting stopper Joe Day, who was left helpless when Reach scored his third Bradford goal by finding the top corner from a free kick which he had earned himself.
Gary Jones and De Vita tested Day either side of the goal as the hosts began to apply constant pressure on Peterborough, who lost control of the match prior to the break as Brisley saw red.
He received his first caution for a trip on Jon Stead when the former Premier League striker was on the breakaway, and another cynical tackle on the surging Reach saw him booked again a minute later.
Twenty-one goal top goalscorer Britt Assombalonga strove to get Peterborough back on level terms and he nearly provided Conor Washington with a chance after a strong run into the area.
He had a shot himself on 64 minutes, cutting inside from the left flank and bending a shot just wide of the far post as playoff hopefuls Peterborough failed to extend the four-point gap to seventh place.
Ex-Posh striker Aaron McLean and Reach both had decent opportunities to make Bradford's final few minutes more comfortable, but Phil Parkinson's men still hung on for three points which take them 13th.