The 20-year old left-back made his senior debut for Villa last season but has opted to move in order to gain regular first team playing time.
"I needed to take this step," the Republic of Ireland U21 international told Villa's official website. "I hope it's the right decision.
"I want to make a career for myself and I'm grateful for the great start I've been given by Aston Villa and coming through the Villa Academy.
"Bristol City were interested and it's a big club. I'm looking forward to the challenge.
"I have no issues dropping down to League One. The club's aim is to bounce back stronger and it's a great goal to have."