Former Luton striker Isaac Vassell returned to haunt the Hatters with a last-gasp header to hand his old side their first defeat of the Championship season.
Town had been keen to bring the forward back to Kenilworth Road in the transfer window, with boss Graeme Jones admitting his admiration for the player that left Luton two years ago for Birmingham City.
But Cardiff splashed the cash to sign the 25-year-old on transfer deadline day and moments after his debut introduction off the bench in injury time he hurt his former employers.
Matty Pearson’s 86th minute towering header looked to have rescued a point for Luton, which would have redeemed a collective defensive lapse in concentration that gifted Aden Flint the opener, with three Bluebirds queueing up to score, unmarked.
Town’s goal had lived a charmed life early on, but they held out and dominated possession, with 63 per cent to Cardiff’s 37 per cent, only to go to sleep from a set piece in a second half with relatively few chances.
That was not the case from kick-off when, even before they’d played a minute, Town were under the pump and Cardiff winger Josh Murphy had two good chances to open the scoring.
A fine save from Simon Sluga, tipping on to the bar from Sean Morrison’s header kept them at bay before the visitors got to grips with the challenge.
Until the equaliser, James Collins had Luton’s best chance in the second period after substitute Harry Cornick picked him out from the byline, but the striker fizzed it into the side netting.
And those are the fine margins because Cardiff, stung by Pearson’s leveler, pilled on the pressure and when Junior Hoilett floated one to the near post Vassell did the damage with virtually the last touch.
LINE-UPS
Cardiff City | Luton Town | ||||
12 | Alex Smithies | 12 | Simon Sluga | ||
2 | Lee Peltier | 2 | Martin Cranie (Bree, 74) | ||
3 | Joe Bennett | 3 | Dan Potts | ||
4 | Sean Morrison | 4 | Ryan Tunnicliffe | ||
5 | Aden Flint | 5 | Sonny Bradley | ||
8 | Joe Ralls | 6 | Matty Pearson | ||
9 | Robert Glatzel (Vassell, 91) | 7 | Callum McManaman | ||
11 | Josh Murphy (Hoilett, 68) | 17 | Pelly-Ruddock Mpanzu | ||
13 | Callum Paterson | 19 | James Collins | ||
15 | Marlon Pack | 20 | George Moncur (Cornick, 55) | ||
20 | Gavin Whyte (Vaulks, 76) | 29 | Jacob Butterfield (Berry, 84) | ||
Subs | Subs | ||||
25 | Joe Day (GK) | 36 | James Shea (GK) | ||
6 | Will Vaulks | 8 | Luke Berry | ||
7 | Leandro Bacuna | 10 | Elliot Lee | ||
16 | Curtis Nelson | 11 | Andrew Shinnie | ||
10 | Isaac Vassell | 14 | Harry Cornick | ||
27 | Omar Bogle | 23 | Brendan Galloway | ||
33 | Junior Hoilett | 26 | James Bree |
Referee: Darren Bond
Attendance: 24,724