The 21-year-old, who scored 10 goals in 50 appearances for the U's last season, has signed a three-year contract with the Championship side.
O'Dowda made his Republic of Ireland debut against Belarus in May, and scored in Oxford's Johnstone's Paint Trophy final defeat by Barnsley.
"He's a real emerging talent," said Bristol City head coach Lee Johnson.
"Callum isn't exactly under the radar because there was a lot of interest in him, so we're delighted he's joined us - we believe he can continue the progression he has already shown."
O'Dowda, who had two years left on his contract with hometown club Oxford, had missed the start of their pre-season tour to Spain because of "illness".
The fee could rise to £1.6m, with Oxford owed a percentage of any future sale.
Find all the latest football transfers on our dedicated page.
Bristol City have signed Oxford United winger Callum O'Dowda for a fee of at least £1m.