Bradford will face Dewsbury Rams in the first semi-final next Saturday at Odsal before Batley Bulldogs host York City Knights on Sunday.
The result means Halifax are still waiting for their first win since the end of July, when they beat Rochdale Hornets 38-6.
Steve Tyrer almost put Halifax in front but he was prevented from scoring a certain try by some superb defending from Rhys Evans.
Bradford, roared on by the Odsal faithful, then hit the front thanks to a fantastic finish by Ethan Ryan.
The Bulls winger dived over the whitewash and planted the ball down one-handed after Will Sharp had shot out of the defensive line but he failed to intercept the ball.
The visitors were reduced to 12 men when Ben Kavanagh - on debut for Halifax - was sin-binned for a late shoulder charge on Jordan Lilley.
Bradford punished Halifax immediately as Elliot Minchella nipped through a gap to extend the lead.
Lilley was then given 10 minutes in the bin for a swinging arm on Kevin Larroyer.
With seconds remaining in the first half, Halifax got themselves back in the game thanks to a try and conversion from Steve Tyrer.
The home side's 10-point cushion was restored seven minutes into the second half when George Flanagan plucked the ball from dummy half and crashed through the Halifax defence to score underneath the posts.
Halifax were reduced to 12 men for a second time when Ed Barber was sin-binned for obstructing Lilley.
Bradford tightened their grip on the contest just before the hour mark as Flanagan twisted away from the tackle and reached out to ground the ball for his second of the game.
The Bulls put themselves out of sight soon after when their determination to keep the ball alive on the final play ended with Ross Oakes strolling over on the left.
Jacob Fairbank and Chester Butler hit back for Halifax but it wasn't enough to produce an unlikely comeback.
Bradford Bulls: Stephenson, Rickett, Evans, Webster, Ryan, Keyes, Lilley, Wilson, Wildie, Magrin, Storton, Minchella, Milton. Subs: Pickersgill, Oakes, Foggin-Johnston, Green, Flanagan, O'Sullivan, Bustin.
Halifax: Laulu-Togaga'e, Robinson, Tyrer, Butler, Sharp, Brook, Woodburn-Hall, Fleming, Moore, Kidd, Larroyer, Barber, Fairbank. Subs: Kaye, Cooper, Saltonstall, Kavanagh, Morris, Syme, Davies.