The first half was a closely contested match, with both teams creating scoring opportunities. Jacob Ramsey had a chance to score, but his shot went wide, and Evanilson's header from Alex Scott's cross didn't trouble Emiliano Martinez.
Aston Villa started to dominate as the match progressed, with Marco Asensio hitting the post and Kepa Arrizabalaga making two great saves to stop Boubacar Kamara and Matty Cash's headers.
The visitors eventually broke the deadlock in first-half stoppage time, as Ollie Watkins deftly diverted Morgan Rogers' cross into the net, becoming Villa's outright all-time top Premier League scorer.
The visitors almost doubled their lead in the second half, but Boubacar Kamara's left-footed strike flew just wide. Aston Villa's quest for victory became more challenging when Jacob Ramsey was sent off, picking up a second yellow card after tripping David Brooks.
Bournemouth gained encouragement from this, with Antoine Semenyo's shot flashing agonizingly wide, and Evanilson's powerful drive from range stinging Emiliano Martinez's palms late on.
Remarkably, in the last minute of stoppage time, Semenyo's goal-bound effort was brilliantly cleared off the line by Matty Cash, securing victory for Aston Villa.
Aston Villa's win puts them level on points with fellow Champions League chasers Newcastle United and Chelsea. Meanwhile, Unai Emery extends his personal unbeaten record against Bournemouth to eight matches.
Andoni Iraola's side drops to 10th in the league, ending their five-game unbeaten run and impacting their own European ambitions.
Flashscore Man of the Match: Ollie Watkins (Aston Villa)
Catch up on the match stats with Flashscore.