The 21-year-old, who has been capped by England at five age levels, completed the deal at Deepdale on Thursday evening and will be in the North End squad for Saturday's Championship opener at Millwall.
Solihull-born Green came through Villa's academy and made his Premier League debut for them in March 2016.
He made 17 appearances for the Midlands outfit in the Championship in the 201/17 and seven the following campaign.
Green spent the first-half of last season on loan with Portsmouth before being recalled by Villa manager Dean Smith in January.
He went on to play 17 times for Villa, coming on as a substitute in their Championship play-off final victory over Derby County at Wembley.
Green, who will wear the No.19 shirt at Preston, said: "The gaffer has said he wants to improve me as a player.
"As a winger you can see what happened to Callum Robinson and how much he improved over the course of last season.
"He wants me to come away from this season as a better player than when I have arrived and more goals is what I need to add to my game and he is confident I can do that."