Striker Dean Ashton opened the scoring against the run of play in the 16th minute, volleying in Kenny Lunt's corner for his 20th goal of the season.
Mark Rivers sealed Crewe's sixth win in eight games after the break when keeper Neil Sullivan failed to deal with a free-kick from Lunt.
Crewe manager Dario Gradi:
"We don't have enough strength in depth to cope with any injuries we
might pick up. We would need to control the game more than we do.
"It's a nice thought, and we would enjoy it for a season but we are just
concentrating on the four games we need to be safe.
"But there is a pattern to our results. Every opposition manager thinks we
are lucky but if so, it is a long run of luck."
Leeds: Sullivan, Kelly (Ricketts 81), Butler, Kilgallon,
Richardson, Lennon, Wright (Walton 71), Gregan,
Pugh (Einarsson 62), Healy, Blake.
Subs Not Used: Carson, Joachim.
Sent Off: Butler (83).
Booked: Gregan, Butler.
Crewe: Ince, McCready (Bignot 62), Foster, Walker, Moses, Lunt,
Sorvel, Bell, Vaughan, Ashton (Varney 76), Rivers (Cochrane 87).
Subs Not Used: Williams, Steve Jones.
Booked: Moses.
Goals: Ashton 16, Rivers 54.
Att: 32,302.
Ref: A Marriner (W Midlands).