Cardiff denied Leeds the chance to go back top of the Sky Bet Championship with a 2-0 win on Sunday.
Goals from Junior Hoilett and Robert Glatzel in either half fired the Bluebirds to victory and up to seventh in the table, now level on points with Preston in sixth.
Leeds, meanwhile, who could have gone 10 points clear of Fulham in third with a victory, were left to rue another game where they dominated possession but lacked any real cutting edge. West Brom stay top due to their better goal difference.
Cardiff started brightly but Leeds soon took control, and looked comfortable until the 35th minute, when a loose Kalvin Phillips pass allowed Hoilett in to score the first. The Canadian winger still had plenty to do, but charged well from just inside his own half to the edge of the area, before thumping the ball past Illan Meslier. Hoilett then celebrated by holding up a shirt in tribute to Peter Whittingham, the Bluebirds legend who tragically passed away in March.
Leeds continued to dominate and should have levelled in the first minute of first-half stoppage-time. Luke Ayling and Tyler Roberts combined to find Jack Harrison, and his low effort was heading in until it was inadvertently blocked by his own team-mate, Patrick Bamford, who was in an offside position a couple of yards out.
Leeds pushed for an equaliser in the second half but were mostly held at bay. They went close in the 61st minute as Bamford teed up Roberts, but his close-range effort was smothered brilliantly by Alex Smithies in the Cardiff goal.
And after 71 minutes Cardiff made them pay as they doubled their advantage. Glatzel had only been on for five minutes when he received a pass from fellow substitute Nathaniel Mendez-Laing, and his sumptuous touch and finish from the edge of the area clipped off the inside of the near post and left Meslier with no chance.
Cardiff City: Smithies; Sanderson, Nelson, Morrison, Bennett; Adomah (Mendez-Laing 65), Vaulks (Tomlin 84), Bacuna, Ralls (Pack 75), Hoilett (Smith 84); Paterson (Glatzel 65)
Subs: Etheridge, Flint, Whyte, Ward
Leeds United: Meslier; Ayling (Alioski 62), White, Cooper, Dallas; Phillips; Costa (77), Klich (84), Roberts, Harrison; Bamford
Subs: Miazek, Berardi, Struijk, Davis, Shackleton, Stevens
Referee: Andy Woolmer