Aaron Tshibola marked his first match back from a loan spell with Milton Keynes Dons by giving Villa the lead on 26 minutes.
But in an extraordinary start to the second half, Fulham scored three times in 10 minutes to take control.
Jon Dagur Thorsteinsson, Mikolaj Kwietniewski and an own goal by Easah Suliman turned the match on its head, although both clubs remain in the top five.
Aston Villa: 15 Jan v Southampton (A) PL2
Fulham: 12 Jan v Reading (H) PL2