Paul Hayes claimed a dramatic stoppage-time winner from the spot for relegated Scunthorpe and left Cardiff's play-off hopes in tatters.

Marcus Williams was up-ended by defender Glenn Loovens and Hayes made no mistake to send Peter Enckelman the wrong way for his second goal of the game.

Joe Ledley looked like earning a point for the Bluebirds with a crisp finish from the edge of the box on the hour.

But Cardiff had only themselves to blame after failing to kill-off the Iron, who hit back after Jimmy Floyd Hasselbaink put the visitors ahead in first-half stoppage time.

It took a moment of quality from Hasselbaink to breathe life into a tame contest with a typically clinical finish. Stephen McPhail found Ledley down the left, and the midfielder's low cross found the veteran Dutchman in space in the area.

Scunthorpe failed to close down the Cardiff striker, and he made no mistake with a fierce half-volley low past stranded keeper Joe Murphy from 12 yards.

Hasselbaink should have doubled the lead seconds after the interval, but let Scunthorpe off the hook when his deflected close-range effort struck the post and rolled into Murphy's grasp.

But then City's promotion hopes all but ended when the Iron struck twice in three minutes.

Hayes dragged Scunthorpe level on 53 minutes when the unmarked striker glanced home an Ian Morris corner at the near post as Cardiff froze.

And it got worse for the Welshmen when Jack Cork released speedy winger Kevan Hurst to lift the second over Enckelman to put Nigel Adkins' men ahead.

Ledley's 18-yard finish seemed like keeping City's slim play-off hopes alive, only for centre-back Loovens to be caught out by Williams' burst into the box as Scunthorpe earned their first win in seven games.