Villa started like a dream, with Ollie Watkins putting them ahead in the first minute. His strike deflected off Fabian Schär and past Nick Pope.
Watkins almost doubled his tally minutes later, but his left-footed shot hit the crossbar. Schär then headed in an equaliser for Newcastle, but it was a controversial goal, with Schär escaping a red card for a last-man tackle on Watkins.
Villa should have retaken the lead, but Marco Asensio missed a penalty chance, and Watkins' free-kick hit the post. Both goalkeepers were tested before the break, with Sandro Tonali's drive heading for the corner before Emiliano Martínez saved it.
Villa dominated the second half, with Ian Maatsen scoring his first top-flight goal. Watkins found him with a pass, and Maatsen slotted it into the far corner.
Villa added two more goals, with Dan Burn diverting a low ball into his own net and Amadou Onana netting a brilliant strike into the top corner. They hit the woodwork again, with Jacob Ramsey's cross curling onto the far post.
Newcastle were lucky to keep it at four, as they lost their fifth league visit in six to Villa Park. Villa now trail their defeated opponents by just two points.
Flashscore Man of the Match: Ollie Watkins (Aston Villa)