City remain next to the bottom, but with other results going their way they are still four points from safety.
The deciding goal came in the 16th minute through 22-year-old midfield player Jack Stacey. A smart move ended with Andrew Shinnie finding Stacey unmarked in the Bradford box and he scored with a low, angled right foot shot.
Luton deserved their lead after dominating the early play and, as they kept up the pressure, Bradford goalkeeper Richard O’Donnell did well to deny Stacey and a close-ranger header from Elliot Lee.
Bradford’s best first-half chance came when Jacob Butterfield’s corner was headed across goal by Hope Akpan and defender Nat Knight-Percival just failed to connect with a header at the far post.
Danny Hylton missed a good chance to increase Luton’s lead when substitute Luke Berry’s cross found him unmarked but he headed wide.
Bradford enjoyed a lot of possession in the second half as they pressed hard for an equaliser, but created few clear cut chances.
Butterfield and Akpan went close with long range efforts while keeper James had to come quickly off his line to clear from David Ball.
Bradford City: O’Donnell, Caddis, A O’Connor, Knight-Percival, Chicksen, Butterfield, Akpan, O’Brien, Anderson, Ball (Clarke 77), Doyle (Patrick 85). Unused substitutes: Wilson, Payne, Maltby, P O’Connor, Wright.
Luton Town: O’Shea, Stacey, Pearson, Bradley, Justin, McCormack (Berry 31), Shinnie, Mpanzu, Lee (Potts 74),Hylton (Cornick 82), Collins. Unused substitutes: Istead, Moncur, LuaLua, Sheehan.
Referee: M Salisbury.