After 7 minutes Crawshaw was brought down by Flint on the edge of the box - many thought the foul was inside the area but a free kick just outside was given - and Flint escaped with a yellow card.
Brennan hit United's post on 38 minutes, and the home side took the lead seconds before the interval when Gibson bundled the ball home at the second attempt.
A minute into the second half United substitute Lewis Foster should have scored with his first touch since coming on at the break, but blasted wide with only keeper Carroll to beat.
Kevin Davies headed against the bar on 58 minutes, then two minutes later from Crawshaw's cross Davies' downward stooping header made it 1-1.
On 74 minutes Carroll fumbled a Crawshaw shot and, as Scott Honeyball challenged, Flint (already booked) aimed a punch and grappled with United's defender, who in turn retaliated. After consulting his linesman, the referee sent off Scott Honeyball - yet didn't even speak to Flint who started it all.
On 81 minutes Brennan volleyed over from close range, and as the tie looked to be going into extra time, Crawshaw found himself clear and ran on to bury the ball past Carroll.