Luton Town took the lead through Glen Rea's excellent volley
Kiernan Dewsbury-Hall's first goal for Luton Town helped the Hatters to victory over fellow mid-table side Bristol City.
The 22-year-old midfielder, on loan from Premier League club Leicester City, found the bottom corner with a fine low 25-yard strike midway through the second half.
The hosts had initially taken the lead through Glen Rea, who brilliantly met Dewsbury-Hall's far-post corner to send a cushioned volley past goalkeeper Daniel Bentley.
City, who also hit the crossbar through Chris Martin's powerful header, levelled when Luton defender Sonny Bradley could only guide Nahki Wells' low cross into the roof of his own net.
But Dewsbury-Hall had the final say, capitalising on a misplaced pass from former Hatters midfielder Tyreeq Bakinson before firing home to end his team's three-game winless run.
- Relive Tuesday's EFL action
Victory also lifted Nathan Jones' side to within three points of Bristol City, who have now followed each of their past three wins with defeat in their next fixture.
Although they looked dangerous on the break they rarely troubled Simon Sluga, while at the other end James Collins should have made the margin of victory more comfortable but could not beat Bentley from close range.
Luton are now 13th in the Championship, while the Robins have dropped to 10th.
Luton Town boss Nathan Jones told BBC Three Counties Radio:
"It was a massive victory. We wanted to get back to winning ways and I thought we deserved it.
"We created more chances, had more possession and shots on goal and missed the big chance in the game too.
"It was a bit of a scrappy game at times; we had to really grind it out. But the win is everything.
"They are a good side, they have promotion ambitions. They're four years ahead of us in terms of what they do, so it shows we're in a decent place."
Bristol City head coach Dean Holden told BBC Radio Bristol:
"We've had some games this season we've deserved to lose, there's no doubt about that, but I don't think that was one of them.
"I think we created enough chances to get something from the game, we passed the ball well on a bumpy pitch.
"I think we were the better team all night. The most frustrating thing was not being able to rally in that last 15 minutes."
- Line-upsMatch StatsLive Text
Line-upsLuton
- 12Sluga6Pearson15Lockyer5Bradley24Norrington-Davies16Rea7CornickSubstituted forClarkat 85'minutes4TunnicliffeBooked at 34minsSubstituted forLuaLuaat 64'minutes22Dewsbury-Hall17MpanzuSubstituted forPottsat 64'minutes19Collins
Substitutes
- 3Potts9Hylton10Lee14Moncur18Clark21Isted23Galloway25LuaLua27Nombe
Bristol City
- 1Bentley2HuntSubstituted forMariappaat 76'minutes26Vyner22Kalas25Rowe18SemenyoBooked at 73mins30Bakinson4Nagy42MassengoSubstituted forDiédhiouat 59'minutes7Martin21WellsSubstituted forBellat 88'minutes
Substitutes
- 9Diédhiou12O'Leary19Mariappa23Moore24Smith28Pearson33Bell34Towler
Referee:Gavin WardMatch StatsHome TeamLutonAway TeamBristol CityPossessionHome45%Away55%ShotsHome11Away8Shots on TargetHome5Away1CornersHome6Away3FoulsHome15Away11Live TextPost update
Match ends, Luton Town 2, Bristol City 1.
90'+5'Full Time
Second Half ends, Luton Town 2, Bristol City 1.
90'+3'Post update
Attempt blocked. Kiernan Dewsbury-Hall (Luton Town) left footed shot from outside the box is blocked.
88'Post update
Tommy Rowe (Bristol City) wins a free kick in the defensive half.
88'Post update
Foul by Dan Potts (Luton Town).
88'Substitution
Substitution, Bristol City. Sam Bell replaces Nahki Wells.
87'Post update
Foul by Tyreeq Bakinson (Bristol City).
87'Post update
Dan Potts (Luton Town) wins a free kick on the left wing.
85'Post update
Attempt saved. Rhys Norrington-Davies (Luton Town) right footed shot from the left side of the box is saved in the bottom left corner. Assisted by Kazenga LuaLua.
85'Post update
Attempt blocked. Antoine Semenyo (Bristol City) left footed shot from the centre of the box is blocked.
85'Substitution
Substitution, Luton Town. Jordan Clark replaces Harry Cornick.
84'Post update
Antoine Semenyo (Bristol City) wins a free kick in the defensive half.
84'Post update
Foul by Dan Potts (Luton Town).
83'Post update
Foul by Adrian Mariappa (Bristol City).
83'Post update
Kazenga LuaLua (Luton Town) wins a free kick in the attacking half.
80'Post update
Nahki Wells (Bristol City) wins a free kick on the left wing.
80'Post update
Foul by Matty Pearson (Luton Town).
79'Post update
Corner, Luton Town. Conceded by Ãdám Nagy.
79'Post update
Corner, Luton Town. Conceded by Tommy Rowe.
78'Post update
Corner, Luton Town. Conceded by Tommy Rowe.
Page 1 of 5rewindpreviousNavigate to the next pagenextNavigate to the last pageforward
Source: bbc.com