The 30-year-old defender spent last season on loan at the Serie A club and impressed during his time at the Stadio Olimpico.
United and Roma failed to reach an agreement on a permanent deal before Smalling’s loan spell ended back in August.
The England international trained alone at Carrington upon his return to Manchester in preparation for a move away, though the prospect of him resurrecting his United career grew as talks dragged on.
Smalling’s move to Roma appeared dead in the water at one stage on Monday when the Serie A club switched their attentions to Chelsea’s out-of-favour centre-back Antonio Rudiger.
But a late turnaround saw United and Roma agree an initial fee of €15m (£13.1m) with an additional €5m (£4.5m) in add-ons.
Paperwork necessary for the transfer to be confirmed was filed with the Italian Football Federation with a minute to spare before Serie A’s 8pm local time deadline.
In a statement, United said: "Everyone at Manchester United would like to thank Chris for his years of service, dedication and professionalism, and wish him all the best for his future.
Smalling made a total of 323 appearances for United after joining from Fulham in 2010, scoring 18 goals.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies