The 21-year-old son of former Netherlands striker Patrick Kluivert arrived in Rome two years ago in a 17 million euro ($20 million) deal from Ajax and has a contract that runs until 2023.
He scored nine goals in 68 matches for Roma, and played a total of 18 minutes as a substitute in Roma’s three Italian league games this season.
“We have been observing Justin Kluivert for quite some time now and are proud that he has decided to join,” said Leipzig sporting director Markus Kroesche.
“Justin fits perfectly into our football philosophy and with him our attacking game can be even more variable in the intensive season ahead of us.”
Kluivert will be eligible to play for Leipzig in this year’s Champions League.