Luton got their play-off push back on course with a dramatic late winner.
The Hatters set the pace against their promotion rivals with headed goals from Steve Howard and Emmerson Boyce.
Christian Roberts halved the deficit and City looked to have sealed their comeback when Danny Coles headed home Brian Tinnion's corner in injury time.
But the visitors barely had time to celebrate before being rocked by a Keith Keane volley, the rookie defender's first senior goal.
Luton: Hyldgaard, Keane, Coyne, Boyce, Davis, Nicholls,
Robinson, Brkovic, Foley, Forbes, Howard. Subs: Showunmi,
Davies, Mansell, Brill, Leary.
Bristol City: Phillips, Carey, Butler, Coles, Hill, Bell,
Doherty, Wilkshire, Rougier, Peacock, Roberts. Subs: Burnell,
Miller, Tinnion, Stowell, Goodfellow.
Referee: M Atkinson (W Yorkshire).