The result gives the Warriors their fifth win in seven games and extends their record under McFadden to five and four, while they advance into ninth place on the competition ladder to sit two points adrift of the eighth-placed Wests Tigers.
McFadden was critical of his side's performance with errors and poor kicking contributing to a sluggish start.
"I certainly think we've played better footy but to get the two points in a scrappy affair was what we need at this time of year. We pretty much won that on defence so that was pretty pleasing," he said.
The visitors suffered a blow when Queensland State of Origin star Matt Gillett was forced from the field with a shoulder injury after 12 minutes, but they went on to enjoy the better of play throughout the first 40.
Brisbane hooker Jake Granvile caught the defence napping when he ran from dummy half and wrestled his way through to plant the ball down for the first try, before halfback Ben Hunt converted from wide out for a 6-0 lead after 18 minutes.
The Broncos continued to apply pressure but the Warriors defence clung on before replacement forward Feleti Mateo arrived to spark their lackluster attack.
The ball-playing back-rower put on a sweet pass for fellow substitute Ben Henry, who roared through a gap near halfway and dummied his way past Barba, to race in and score the Warriors first points 12 from halftime.
Improved kicking from Johnson and Townsend, and mistakes from the Broncos saw possession swing, and the Warriors enjoyed four more attacking sets before Hurrell barged through for their second in the 37th minute. Johnson again added the extras, before producing a booming 41-metre field goal to extend the Warriors advantage right on halftime.
The first five minutes after the break saw two Warriors placed on report, with prop Suaia Matagi earning a reprimand for a strong challenge on Josh Hoffman, while Laumape was involved in an ugly lifting tackle on Josh McGuire.
Both teams saw attacking chances go begging as the game neared the hour mark, the Broncos managing to hang on after Shaun Johnson burst through the line, while only a desperate lunge from Manu Vatuvei prevented Dale Copley from touching down.
Brisbane centre Jack Reed's offload put Barba away before he used a fend and a second burst of pace to beat his opposite Sam Tomkins to score, before Hunt converted to leave them three adrift.
Townsend's try gave the Warriors a timely boost, with Johnson again converting to give them the match-winning lead before they closed it out in front of 16,025 fans.
Warriors 19 (Henry, Hurrell, Townsend tries; 3 Johnson cons; 1 FG pens)
Broncos 10 (Granville, Barba tries; Hunt 1 cons; pens)