Brownhill gjorde bara sex framträdanden för North End förra säsongen, men gjorde tre mål i 27 matcher på lån på League One play-off vinnare Barnsley.
20-åringen avvisade ett nytt kontraktserbjudande från Preston, som ska få ersättning för flytten.
"Såväl som att vara en bra fotbollsspelare han är också en fantastisk karaktär," sade City huvudtränare Lee Johnson.
"Han är en ung, hungrig, eftertraktad spelare som är erfaren bortom sina år i modern fotboll, och vi har slagit ut konkurrensen från andra klubbar för att få honom."
Hitta alla de senaste fotbollsöverföringarna på vår dedikerade sida.
Bristol City skriver under mittfältaren Josh Brownhill från Preston i slutet av hans nuvarande kontrakt den 30 juni.