Defeat ended Bournemouth's five-game unbeaten run and checked their rise up the table.
The hosts were limited to a few half-chances for the first 80 minutes but then sparked into life, creating a hatful of opportunities once Aston Villa were reduced to 10 men.
Of all their late chances, Bournemouth will especially rue not putting the ball in the net with almost the last kick of the game when Martinez got a crucial touch on Semenyo's header and Matty Cash managed to clear from under his own bar with Daniel Jebbison lurking.
It meant the Cherries stayed 10th, two points behind Brentford in eighth place.