The Villans ran riot in the West Midlands, scoring twice in the first half and adding a few more in the second 45 minutes.
A sixth victory in seven home meetings with the Robins lifts Villa up to fifth place in the Championship standings - three points behind their opponents, who have now suffered back-to-back losses.
Villa had a penalty shout rejected soon after when the ball hit Bailey Wright's hand, but they did not have to wait long for a second as Robert Snodgrass scored his first of the evening by firing home from the rebound after Hogan's attempt was saved.
The hosts took back control of the match and added a third and fourth goal, with Snodgrass cutting inside and placing the ball out of Steele's reach, while substitute Birkir Bjarnason kept his composure after being played through by Alan Hutton.
Conor Hourihane rounded off the scoring in the final five minutes, latching on to a loose ball and sending a deflected shot beyond Steele's reach.
Aston Villa (4-1-4-1): Johnstone; Elmohamady, Elphick, Chester, Hutton; Jedinak; Snodgrass, Hourihane, Grealish (O'Hare 80'), Adomah (Bjarnason 70'); Hogan (Hepburn-Murphy 83')
Bristol City (4-4-1-1): Steele; Wright, Flint, Baker, Magnusson (Kelly 46'); Brownhill, Smith, Pack (Taylor 46'), Bryan; Reid; Paterson (Woodrow 79')