The Germany international was without a club after his contract with Dortmund ended in July. Details of the transfer were not revealed but Italian media reported the player has signed a season-long deal for 2.5 million euros ($2.8 million).
Hummels, a 2014 World Cup winner, won two league titles and two German Cups at Dortmund.
He will wear the number 15 shirt for Roma and will be the seventh German player to play for the club.