Cardiff made it three wins from four matches under Steve Morison as they claimed a 2-1 win at Luton.
The visitors took the lead after 10 minutes with their first goal in the first half of a game this season.
Perry Ng's cross was met by Rubin Colwill, who was completely unmarked. His downward header appeared to be clawed out by Hatters goalkeeper Simon Sluga, but not before it had crossed the line as referee Oliver Langford signalled a goal.
With the wind behind them, Ng tried his luck from 40 yards after collecting Sluga's clearance, with his effort not missing by much.
Luton offered very little going forward during the opening 45 minutes. Kal Naismith's free-kick that cleared the crossbar being the only opportunity they mustered.
There was a flurry of excitement before half-time as Sluga opted to punch clear a cross which rebounded off an unsuspecting James Collins' head and out to safety.
Town then won a corner which was put into the six-yard box by James Bree but no Luton player was able to get a touch.
Cardiff went close from a set-piece of their own as Sean Morrison's glancing header went narrowly wide of the far post.
Bluebirds defender Mark McGuinness should have made it 2-0 at the start of the second half, putting a free header from Marlon Pack's cross over the bar, while Colwill was denied his second of the afternoon by Sluga.
Pelly-Ruddock Mpanzu sent a rising effort into the stand from 20 yards and visiting keeper Alex Smithies got just enough on a Harry Cornick toe-poke as Luton looked to hit back.
Tom Lockyer might have made it 1-1 as he stayed up from a corner and met Naismith's driven cross, only to divert his header over.
Luton did level in the 64th minute when Naismith's deep ball into the box was pulled down by Elijah Adebayo and he found Jordan Clark who side-footed the ball into the corner for his first goal of the season.
Collins almost put City back in front, latching onto a poor header from Sonny Bradley, but his lob was easy for Sluga.
Naismith then tried his luck, blazing off target from 25 yards after stepping out of defence once more.
Cardiff regained the lead after 77 minutes when Ryan Giles' cross from the left was missed by Bradley and Morrison buried a diving header at the far post.
Clark might have put Luton level within 60 seconds as he brought down Naismith's cross, only to slice wide.
Bluebirds substitute Isaak Davies almost wrapped up the win with four minutes to go but Sluga raced out to slide at his feet.
Luton could not grab an equaliser as their winless run was extended to four matches.
Luton Town: Simon Sluga, James Bree, Tom Lockyer, Sonny Bradley (C), Kal Naismith, Amari'i Bell (Fred Onyedinma 58) Glen Rea (Henri Lansbury 84), Pelly-Ruddock Mpanzu, Jordan Clark, Harry Cornick (Danny Hylton 66), Elijah Adebayo.
Subs not used: James Shea, Reece Burke, Allan Campbell, Cameron Jerome.
Cardiff City: Alex Smithies, Mark McGuinness, Sean Morrison ©, Joe Ralls, Kieffer Moore, Curtis Nelson, James Collins (Isaak Davies 82), Marlon Pack, Ryan Giles, Rubin Colwill (Mark Harris 71), Perry Ng.
Subs not used: Dillon Phillips, Aden Flint, Will Vaulks, Leandro Bacuna, Ciaron Brown.
Bookings: Morrison 38, Rea 42, Smithies 85.
Referee: Oliver Langford.
Attendance: 9,987 (1,032 Cardiff).