The League 1 part-timers - who almost went out of business before a successful takeover in January - produced a fine display versus John Kear’s Championship side.
They led early in the second period and were level going into the final stages only for Elliott Minchella’s 66th minutue penalty to get Bradford home.
However, Keighley’s Will Cooke had been penalised for lying in the ruck despite awaiting treatment for a head knock.
Cougars kept at it but saw Josh Lynam sin-binned for dissent and could not pull it back against the five-time Cup winners.
They were 6-4 ahead at the break and, though under pressure for long periods, fully deserved their advantage.
They defended their line terrifically well, twice holding up Bradford players - Ross Oakes and George Flanagan - after they had got over their goalline.
Bulls were disorganised at times, too, twice being tackled on the last tackle in good attacking position and twice seeing efforts ruled out for forward passes.
Rowan Miles was guilty on one such occasion to see David Foggin-Johnston denied and Ethan Ryan - who struggled for much of the afternoon at full-back - sent one forward for opposite winger Dalton Grant.
It looked like proving costly for Kear’s side given James ‘Buster’ Feather, the veteran Keighley hooker who played so well at loose forward, had put the hosts ahead in the 24th minute.
He surged onto Luke Million’s flat pass from close range, Benn Hardcastle improving, and Bradford did not enjoy any success of their until the penultimate minute of the half.
It was Ryan who atoned for a succession of errors at full-back by rising to claim a high kick.
As is so often the case, Flanagan had added impetus to the visitors’ play when coming off the bench and it was the replacement hooker who put them ahead early in the second period, a trademark effort from dummy half.
Minchella improved and then added a 53rd minute penalty as his side began to exert pressure.
However, Craig Lingard’s side levelled with their first real attack of note in the second period, winger Alfie Seeley sneaking in in front of Ryan to claim a falling kick on the hour mark.
Hardcastle levelled but then came that controversial penalty and Bradford held on.
Keighley Cougars: Welham; Dixon, Cooke, Hallett, Seeley; Miller, Hardcastle; Bailey, Million, Hallas, Lynam, Muranka, Feather. Substitutes: Coventry, Levy, Gaylor, Parker.
Bradford Bulls: Ryan; Grant, Gibson, Oakes, Foggin-Johnston; Pickersgill, Milnes; Wilson, Wildie, Crossley, Garside, Storton, Minchella. Substitutes: Bustin, Magrin, Flanagan, Hodgson.
Referee: Marcus Griffiths (Widnes)