James Bailey then tried his luck from distance for Barnsley, but his effort whistled wide of the post.
Pickford was again called into action after 16 minutes to deny a long-range strike from Conor Hourihane during a spell of dominance by the home team.
Chances continued to arrive as the half progressed, with Rory McArdle missing with a header for Bradford and Hourihane testing Pickford with another long-range effort, this time from a free kick.
Sam Winnall was next to come close for the home team after 36 minutes, but his effort smashed the crossbar, before the forward was denied by the excellent Pickford once again.
Like Bradford in the first, Barnsley scored early in the second period, with Lewin Nyatanga appeared to level the scores with 48 minutes on the clock. On second look, however, it was adjudged that McArdle had headed into the back of his own net.
Winnall came close to sending Barnsley ahead after 55 minutes, but his long-range effort just flew wide of the post. Ryan Williams then tried his luck for the home side, but his effort was deflected into the arms of the Bradford goalkeeper.
Billy Knott had Bradford's best chance of the second period when he met a loose ball inside the box, but the midfielder could not make proper contact with his effort.
Devante Cole remained a threat for the home side, but too often lacked that elusive pass in the final third.
The home side took the lead for the first time after 65 minutes when Winnall converted his second league goal of the season after meeting a low cross from Nyatanga.
Bradford should have had an equaliser 10 minutes from time when Kennedy found space in a wide area before delivering a low cross into the box, but there were no takers.
Cole continued to cause the visitors problems in the latter stages, but Winnall could not reach another low cross from the quick forward. It did not prove to be costly, however, as Kane Hemmings added a third for the home team late on.
The result moves Barnsley into 13th spot in League One, while Bradford remain seventh.