Juan Pablo Angel and Ronny Johnsen netted as Aston Villa saw off Leeds.
Villa struck the bar twice before they went in front with Lee Hendrie and Nolberto Solano both going close.
But Angel made no mistake with a first-half penalty, slotting past Paul Robinson after Didier Domi had tripped Darius Vassell in the area.
Leeds hit the woodwork through James Milner's header and Mark Viduka's drive, but Villa sealed it when Johnsen headed home Solano's cross.
Both sides were boosted by the return of their leading scorer, with Angel replacing Peter Crouch for Villa and Viduka back from compassionate leave for Leeds.
Villa unsurprisingly started the brighter of the two teams, Thomas Hitzlsperger and Hendrie both firing in early shots that failed to test Robinson.
Leeds were having to defend deep and in numbers but Villa were helping them as Hendrie and Vassell had shots unintentionally blocked by their team-mates.
45 mins: Vassell is tripped and Angel scores from the spot
59 mins: Johnsen doubles lead
But after 17 minutes the visitors fashioned the first clear-cut chance of the game as James Milner planted a header onto the crossbar from Gary Kelly's inswinging free-kick.
Villa replied in kind soon after when Hendrie curled a terrific left-foot shot from 20 yards that crashed off Robinson's bar.
The hosts were soon to be denied by the woodwork again, this time Robinson magnificently tipping Solano's header onto the bar after Gareth Barry's wicked cross.
Deep into first-half injury time, Leeds were hit by a killer blow.
Vassell raced through the middle and was upended by Domi in the area before Angel coolly slotted the resulting penalty into the bottom corner.
Leeds were shell-shocked by the decision and struggled to lift their game when they reappeared after the interval.
Angel nearly skipped through the defence before Solano sent a cross-shot flashing past Robinson's right-hand post.
And just before the hour mark, Villa made sure of the points.
Solano sent over a right-wing free-kick and Johnsen - on for the injured Dion Dublin - nodded home from six yards.
Leeds were on their way to a seventh successive defeat, although Viduka did stir into life with a right-foot piledriver that brought the bar into play yet again.
There were still chances at both ends with Alan Smith seeing his header tipped over by Thomas Sorensen before Jlloyd Samuel missed the target from close range for Villa.
But there was no way back for Leeds, and Eddie Gray's men are looking like relegation certainties.
Aston Villa: Sorensen, De la Cruz, Mellberg,
Dublin (Johnsen 48), Samuel, Solano, Hendrie (Ridgewell 86), Hitzlsperger, Barry, Angel, Vassell (Crouch 86).
Subs Not Used: Postma, Allback.
Booked: Mellberg, De la Cruz.
Leeds: Robinson, Kelly, Caldwell, Matteo, Domi,
Pennant (Lennon 63), Bakke (Richardson 86), Seth Johnson, Milner, Viduka, Smith.
Subs Not Used: Harte, McPhail, Carson.
Booked: Domi, Viduka.
Referee: U Rennie (S Yorkshire).