Dybala was a free agent after leaving Juventus at the end of the 2021/2022 season.
The former Palermo forward has agreed a three-year contract at the Stadio Olympico and has been handed the number 21 jersey.
Dybala spent seven seasons with Juventus, winning five Serie A titles and four Coppa Italia trophies.
The 28-year-old scored 115 goals in 293 appearances for the Old Lady, making him Juventus' third all-time top scorer among foreigners to have played for the club.
Roma, coached by Jose Mourinho, finished sixth in Serie A last season and won the inaugural UEFA Nations League. They will play in the Europa League in the upcoming campaign.
'The days that have led up to me signing this contract have been filled with so many emotions,' Dybala told the club's official website.
'The speed and determination with which Roma demonstrated just how much they wanted me made all the difference.
'I am joining a team that is on the up, a club that continues to put in place strong foundations for the future, and a coach, Jose Mourinho, that it will be a privilege to work with.
'As an opponent I have always admired the atmosphere created by the Roma fans – I now cannot wait for the chance to salute them while wearing this shirt.'
“Paulo’s decision to join our project is a testament to the club’s credibility and a sign of the hard work that, all together, we are putting in to take Roma forward,” Tiago Pinto, the club’s General Manager, added.
“Paulo is a world-renowned player who has won major trophies and gained global acclaim; he will bring that class with him to Roma and I am sure that, with him in the squad, we will be even stronger and more competitive.”
Dybala is Roma's fourth summer signing, which includes former Manchester United and Chelsea midfielder Nemanja Matic.