Striker James Vaughan’s first-half header put the Bantams in the driving seat at the Alexandra Stadium.
But Charlie Kirk equalised for the hosts 10 minutes later and Tom Lowery won it on the hour mark for the Railwaymen.
“They were the two softest goals that you’ll see,” rapped Bowyer. “We gave them one or two opportunities on the counter from careless play ourselves, which should have been a warning.”
Jamie Devitt’s stinging drive struck the woodwork but former Everton centre-forward Vaughan was on hand to head home for his third goal in five games.
“It was a fantastic strike from Jamie,” added Bowyer. “I don’t know if it went over the line in the first place but it was brilliant centre-forward play from Vaughany following it in.”
The Bantams switched off and midfielder Kirk levelled with a clinical finish and Lowery bagged the winner with a sweet strike.
“Don’t get me wrong, their second was a great strike but how they get out of the corner and he (Lowery) gets to turn like that is just not acceptable,” moaned Bowyer. “We should have scored more with the chances we had.
“I thought the response after the second goal was good and Clayton Donaldson had a great chance with a header narrowly wide. We’ve got to dust ourselves down now and get ready for the cup game on Tuesday, but the main focus is for Saturday when we’re at home to Northampton.”
Crewe Alexandra: Jaaskelainen, Ng, Lancashire, Nolan, Pickering, Green, Wintle, Lowery, Powell (Dakle 69), Porter (Anene 83), Kirk. Unused substitutes: Jones, Ainley, Richards, Finney, Hunt.
Bradford City: O’Donnell, O’Connor, O’Connor, Richards-Everton, Mellor, Akpan, Devitt (Gibson 81), Palmer (Pritchard 62), Wood (Cooke 62). Unused substitutes: Hornby, Anderson, Patrick, Devine.
Referee: D Handley (Lancs).