The Scotland international will link up again with Steve Bruce, who managed him at Hull, at Villa Park.
Snodgrass joined the Hammers in January but, having only made 15 appearances, has dropped down a division to secure regular first-team football.
The 29-year-old helped Hull win promotion to the Premier League in 2016 and is looking to do the same with Villa this season.
Former Leeds and Norwich player Snodgrass told Villa's official website: "I am delighted to join.
"I have had offers from other clubs but it was an easy decision to come here. You see the name Aston Villa with all its history, tradition, fanbase and it's a place you want to come to.
"Seeing it in the Championship doesn't look right.
"I want to be part of that journey back up to the Premier League. I am raring to go."