Brazilian winger Malcom has passed a medical at Barcelona before his £36.5m move from Bordeaux.
The deal was announced on Tuesday after the Spanish champions beat Roma to the signature of the 21-year-old.
“This is a boyhood dream come true,” said Malcom, who is yet to be capped by Brazil. “I can’t wait to get started.”
Roma are considering whether they have “a legal case” after reaching a deal with Bordeaux on Monday, subject to a medical and personal terms.
Barcelona will pay an initial 41m euros, with another 1m euros (£900,000) in variables.
Malcom, who scored 20 goals and set up 13 in 84 Ligue 1 games for Bordeaux, will join Barcelona on their USA tour.
He is the club’s second Brazilian summer signing, after midfielder Arthur joined from Gremio for £35.5m.
They have also signed Sevilla centre-back Clement Lenglet for 35.9 million euros (£32m).
‘Roma did not want to enter an auction’
Roma sporting director Monchi said “nothing was signed” with Malcom, who had also been linked with a move to the Premier League, with Arsenal, Everton and Tottenham said to be interested.
Documents had been exchanged between Roma and Bordeaux before the Italian side were forced to increase their offer as Barca submitted an improved bid.
But Roma opted against a further bid, with Monchi telling Roma’s website on Monday: “I was surprised to be told that the agents and Bordeaux wanted another improved offer, as Barcelona were still pushing for a deal. I told them enough, because we did not want to enter an auction.
“We could not continue like that, and yesterday we had only raised our offer because of the willingness and desire of our president. So that was how everything ended.
“It is true that nothing was signed, but there are many messages with the agents and their president that are at least worth being assessed.”
Bordeaux – who signed Malcom from Corinthians in 2016 – had also announced the agreement, subject to the signature of “administrative documents”.