Bradford City all but secured their Sky Bet League 1 future with a narrow but deserved 1-0 win over sixth-placed Peterborough United.
The winning goal after 27 minutes was superb 25-yard free-kick from Adam Reach, which went into the net off the inside of the upright.
Reach was brought down by a combined challenge from Jack Payne and skipper Tommy Rowe and the Bradford player picked himself up to score.
Peterborough goalkeeper Joe Day dived full length to keep out a left-footed shot from on-loan Leeds defender Adam Drury five minutes later before the visitors suffered another blow when Shaun Brisley was sent off in the 42nd minute after collecting two yellow cards in the space of two minutes.
Despite some Peterborough pressure early in the second half, it was Bradford who came closest to adding to their lead when Reach's fierce shot was saved at the near post by Day in the 72nd minute.
Day then did well to keep out a close-range header from substitute Kyle Bennett four minutes later before leading scorer James Hanson had a shot blocked on the goal-line in stoppage time.