The Premier League outfit announced the signing on Sunday morning, with the 18-year-old moving north for an undisclosed fee.
Born in Surrey, Roberts has been with Fulham since he was 13 and made 22 appearances for the Cottagers after impressing for their academy where he was a key member of the team which reached The FA Youth Cup Final in 2014.
And he ironically went on to make his senior debut for the Cottagers as a substitute against City at the Etihad Stadium in March 2014.
He’s also been a regular for the Three Lions, representing England at U16, U17, U18 and U19 level in recent years.
Last summer, Roberts was a key part of the U17s squad who won the European Championship title in Malta with a victory over the Netherlands in the Final.
This season, he was involved under Sean O’Driscoll with the U19s, who he’s still eligible to represent in the coming campaign but finished the term with Neil Dewsnip's U18 squad, scoring a fine goal in their 2-0 win over Russia in Moscow earlier this summer.
Roberts becomes City’s fourth signing of the summer, joining Raheem Sterling, Fabian Delph and Turkish striker Enes Unal in Manuel Pellegrini’s squad.