Raul Jimenez’s fifth-minute fifth goal of the season had put Fulham ahead against a Villa side who had drawn their last two domestic matches.
But Morgan Rogers equalised soon after in the ninth and, after Andreas Pereira scuffed a penalty for Fulham, Ollie Watkins put Villa ahead before they took advantage of Joachim Andersen’s red card to wrap the game up through an Issa Diop own goal.
Fulham took the fight to Villa off the bat as Jimenez continued his impressive form to give the hosts the lead.
Skipper and goalkeeper Bernd Leno sent a long ball over the Villa defence to Jimenez and the Mexico international outmuscled Pau Torres before he buried his effort with his weaker left foot into the bottom right-hand corner.
But the hosts’ efforts were undone minutes later when Rogers equalised with the aid of a hefty deflection.
Rogers, who featured for England under-21s in the most recent international break, had a go from range but a touch from Calvin Bassey wrong-footed Leno as Unai Emery’s side levelled.
Jimenez was proving a handful and Villa struggled to deal with his presence in the box. Another long ball saw his headed knock-down connect with the hand of Matty Cash, sparking VAR to award a penalty. Brazil midfielder Pereira stepped up but he succumbed to the quality of penalty-saving expert Emi Martinez who denied him with a simple save in the bottom-right corner.
Pereira’s miss could be seen as deserved by Villa who would have felt hard done by after the decision against them, and they could have taken the lead themselves after, but Rogers’ squandered open-goal effort kept the match level going into the break.
After the interval, Villa continued to apply the pressure and Watkins punished their London hosts off a corner. Youri Tielemans, who had been instrumental all afternoon, whipped a curled cross to the head of the striker whose effort rifled past Leno, hitting the underside of the bar before going in.
The tide began to turn when a shove from last man Andersen on Watkins saw him shown a red card by referee Darren England and Villa made use of the extra man when they found a third to put the game to bed.
Lucas Digne surged down the left and his delivery cannoned off substitute Diop and past Leno for an own goal.
Referee England then showed a red card to Villa replacement Jaden Philogene for a second yellow after a light push on Reiss Nelson in second-half added-time.