Match ends, Aston Villa 2, Cardiff City 0.
Leandro Bacuna scored a spectacular free-kick as Aston Villa ended their Premier League goal drought against Cardiff City.
Villa had gone seven-and-a-half hours without finding the net before the Dutch winger's curling effort.
Libor Kozak's header doubled the margin of victory with six minutes left.
Villa also kept their first home clean sheet for 16 games as Cardiff were brought back down to earth following their derby win over Swansea.
Before this fixture Paul Lambert's side last scored in the 3-2 win over Manchester City on on 28 September when Andreas Weimann bagged the winner.
They started brightly, though, and midfielder Karim El Ahmadi's long-range shot was parried by Cardiff goalkeeper David Marshall early on with striker Christian Benteke unable to react quickly enough to latch on to the rebound.
Benteke's strike partner Kozak went close to putting through his own net at the other end moments later when his header went inches past the post.
A defensive mix-up let Cardiff midfielder Aron Gunnarsson pinch the ball on the edge of the penalty area in the 12th minute, but Villa goalkeeper Brad Guzan scampered off his line to snuff out the danger.
The remainder of the first half became scrappy with chances at a premium.
Kozak, who joined Villa from Lazio for £7m on deadline day, brought a fine diving save out of Marshall moments after the half-time interval when he got his head on the end of Bacuna's cross from the right.
The hosts looked the more likely side to break the deadlock and almost caught Cardiff on the counter attack when El Ahmadi crossed for Benteke but the Belgium international directed his header wide.
And it was Bacuna - signed by Lambert from Groningen in the summer - who eventually broke the stalemate after being fouled by Gary Medel just outside the penalty area.
The 21-year-old winger dusted himself down and curled the resulting set-piece around the Cardiff wall and into the net with Marshall rooted to the spot.
Koazk made the points safe late on when he scored Villa's second with a close-range header after Matthew Lowton had nodded the ball back across goal.
Cardiff pressed to get themselves back into the game in the remaining minutes but the home defence stood firm to secure the points.
Aston Villa manager Paul Lambert: "The players battled and were very good. Leandro's free-kick was fabulous. His goal against Manchester City was brilliant but I think that surpasses it.
"I thought we deserved to win the game. I knew it would be a tough game so it's a good win.
"The clean sheet gives us confidence going forward and I was really pleased with the result. The lads were excellent."
Cardiff City manager Malky Mckay: "Ultimately it was a good goal that made the difference. I thought we had played well until then. We had plenty of possession and were comfortable until that point. It was a poor free-kick to give away.
"Top players at this level can put the ball in the top corner and Leandro Bacuna punished us by doing that. We will learn out lesson from that.
"Overall, I'm not too disappointed because if we show that kind of application we'll be fine."
- 6ClarkBooked at 90mins
- 8El AhmadiSubstituted forLowtonat 74'minutes
- 27KozákSubstituted forBoweryat 88'minutes
- 8MedelBooked at 75mins
- 17GunnarssonSubstituted forMutchat 65'minutes
- 11OdemwingieSubstituted forCampbellat 55'minutes
- 39BellamySubstituted forMaynardat 82'minutes
- Martin Atkinson
- Shots on Target
Second Half ends, Aston Villa 2, Cardiff City 0.
Attempt missed. Peter Whittingham (Cardiff City) left footed shot from a difficult angle and long range on the right is too high from a direct free kick.
Ciaran Clark (Aston Villa) is shown the yellow card for a bad foul.
Kévin Théophile-Catherine (Cardiff City) wins a free kick on the right wing.
Foul by Ciaran Clark (Aston Villa).
Corner, Aston Villa. Conceded by Andrew Taylor.
Attempt blocked. Leandro Bacuna (Aston Villa) left footed shot from outside the box is blocked. Assisted by Jordan Bowery.
Offside, Cardiff City. Don Cowie tries a through ball, but Fraizer Campbell is caught offside.
Attempt missed. Jordan Bowery (Aston Villa) right footed shot from the right side of the box is close, but misses to the right. Assisted by Christian Benteke.
Substitution, Aston Villa. Jordan Bowery replaces Libor Kozák.
Offside, Cardiff City. Gary Medel tries a through ball, but Steven Caulker is caught offside.
Corner, Cardiff City. Conceded by Libor Kozák.
Attempt blocked. Steven Caulker (Cardiff City) header from the centre of the box is blocked. Assisted by Peter Whittingham with a cross.
Corner, Cardiff City. Conceded by Ron Vlaar.
Attempt blocked. Ashley Westwood (Aston Villa) right footed shot from outside the box is blocked.
Goal! Aston Villa 2, Cardiff City 0. Libor Kozák (Aston Villa) header from the centre of the box to the bottom right corner. Assisted by Matthew Lowton with a headed pass.
Substitution, Cardiff City. Nicky Maynard replaces Craig Bellamy.
Offside, Aston Villa. Ciaran Clark tries a through ball, but Ron Vlaar is caught offside.
Corner, Aston Villa. Conceded by Steven Caulker.