Match ends, Fulham 2, Aston Villa 0.
Fulham made it 10 league games unbeaten and boosted their Championship promotion hopes by ending Aston Villa's seven-match winning run in the league.
After a tight first half it took just seven minutes after the break for Ryan Sessegnon to sweep the hosts in front.
Floyd Ayite made it 2-0, controlling keeper Sam Johnstone's poor free-kick from out wide and firing into an empty net from inside the centre circle.
Villa slipped a place to third with the loss, while Fulham stayed fifth.
Victory extended Fulham's home run to seven consecutive wins, while they have also scored 14 goals in their past four matches at Craven Cottage.
Both teams came into the game in form and full of goals but, the absence of Jack Grealish and leading scorer Albert Adomah, Villa's attacking options seemed blunted and Fulham capitalised.
The first half was a low-key affair, Conor Hourihane and Scott Hogan firing over the bar for the visitors, while Fulham striker Aleksandar Mitrovic, on loan from Newcastle United, was a lively presence without threatening the goal.
However, once Fulham had broken the deadlock, they were the side in control.
Steve Bruce's Villa dropped Championship points for the first time in 2018 and therefore were overhauled by Cardiff, who beat Middlesbrough to go second.
Fulham manager Slavisa Jokanovic:
"We played with confidence, but we cannot think the job is done. We must show solidarity and work together.
"All the squad will be needed, not just the players who started today, but those on the bench and in the stand.
"In the second half we tried something a little bit different, we scored two goals and we could have scored some more. We must be satisfied with our performance, we played very good football, (but) it is only three points."
Aston Villa manager Steve Bruce told BBC WM:
"I didn't think there was anything in it. It was a tense game with two very good teams for the first 60 minutes.
"It was always going to be the first goal (that was likely to decide the game) and we're disappointed because we know they're very good down the flanks in particular, they're quick in wide areas and we've been done down the wide area..
"We've made a mistake for the first and a mistake for the second. We've made more mistakes today than we've probably done in six weeks, but that's football."
Line-ups
Fulham
Formation 4-3-3
- 1Bettinelli
- 2Fredericks
- 26Kalas
- 13Ream
- 21Targett
- 10Cairney
- 6McDonald
- 8JohansenBooked at 67minsSubstituted forOdoiat 90+1'minutes
- 11AyitéSubstituted forPiazonat 88'minutes
- 32MitrovicSubstituted forKamaraat 79'minutes
- 3R Sessegnon
Substitutes
- 4Odoi
- 7Kebano
- 16Norwood
- 20Piazon
- 22Christie
- 27Button
- 47Kamara
Aston Villa
Formation 4-1-4-1
- 1Johnstone
- 28Tuanzebe
- 5Chester
- 26Terry
- 21Hutton
- 15JedinakBooked at 59minsSubstituted forGrabbanat 67'minutes
- 27El MohamadySubstituted forOnomahat 45'minutes
- 14Hourihane
- 20Bjarnason
- 7SnodgrassSubstituted forDavisat 88'minutes
- 9Hogan
Substitutes
- 3Taylor
- 6Whelan
- 8Lansbury
- 18Onomah
- 31Bunn
- 39Davis
- 45Grabban
- Referee:
- Tony Harrington
- Attendance:
- 24,547
Match Stats
- Possession
- Home63%
- Away37%
- Shots
- Home14
- Away7
- Shots on Target
- Home7
- Away2
- Corners
- Home1
- Away0
- Fouls
- Home7
- Away11
Live Text
Post update
Full Time
Second Half ends, Fulham 2, Aston Villa 0.
Substitution
Substitution, Fulham. Denis Odoi replaces Stefan Johansen.
Post update
Attempt saved. Aboubakar Kamara (Fulham) right footed shot from the left side of the box is saved in the centre of the goal. Assisted by Tom Cairney.
Post update
Attempt missed. Ryan Sessegnon (Fulham) right footed shot from the right side of the box is too high. Assisted by Ryan Fredericks.
Substitution
Substitution, Aston Villa. Keinan Davis replaces Robert Snodgrass.
Substitution
Substitution, Fulham. Lucas Piazon replaces Floyd Ayité.
Post update
Aboubakar Kamara (Fulham) wins a free kick in the attacking half.
Post update
Foul by Robert Snodgrass (Aston Villa).
Post update
Offside, Fulham. Tim Ream tries a through ball, but Stefan Johansen is caught offside.
Post update
Delay over. They are ready to continue.
Post update
Delay in match Kevin McDonald (Fulham) because of an injury.
Post update
Attempt saved. Kevin McDonald (Fulham) right footed shot from the right side of the box is saved in the bottom right corner. Assisted by Floyd Ayité with a through ball.
Post update
Foul by Ryan Sessegnon (Fulham).
Post update
Robert Snodgrass (Aston Villa) wins a free kick on the right wing.
Post update
Tom Cairney (Fulham) wins a free kick in the defensive half.
Post update
Foul by Conor Hourihane (Aston Villa).
Substitution
Substitution, Fulham. Aboubakar Kamara replaces Aleksandar Mitrovic.
Post update
Attempt missed. Scott Hogan (Aston Villa) right footed shot from the centre of the box is close, but misses to the right. Assisted by Birkir Bjarnason with a through ball.
Post update
Attempt missed. Floyd Ayité (Fulham) header from the centre of the box is just a bit too high. Assisted by Ryan Sessegnon with a cross.