The Blaugrana have agreed a £37m deal with the Ligue 1 side to bring him to the Camp Nou on a five-year deal.
Roma confirmed on Monday that they had reached an agreement to bring the 21-year-old to the Italian capital for a fee of €38m (£34m).
The player was expected to arrive in Rome on Tuesday to undergo a medical and complete the move but did not travel given Barca’s late interest.
And a deal with the Spanish champions has now been agreed, with Barca announcing the deal on their Twitter.
Ernesto Valverde wants to bolster his attacking options ahead of the new La Liga season and have been heavily linked with a move for Chelsea’s Willian.
But Malcom became their primary target after a campaign during which he scored 12 goals and laid on eight assists in all competitions.
The Brazilian is on his way to Barcelona, after a €41 million initial fee was agreed with the player’s representatives who arrived in the city earlier.
Roma fans had been waiting at the Ciampino Airport for the arrival of the winger, from Bordeaux.
But the Spanish giants stepped in at the last moment and now the 21-year old looks all but ready to make a switch to the Camp Nou.
A Ligue 1 sensation, Malcom is a left-footer, who plays on the right flank, and has scored 23 goals in 93 appearances for Bordeaux.
Sergi Samper will miss Barcelona‘s pre-season tour of the US due to a knee problem, the club announced on Tuesday.
The 23-year-old defensive midfielder had been due to fly out on Tuesday evening but after a training session earlier in the day, his absence was confirmed.
“The first team player Sergi Samper has a problem in his left knee and will stay in Barcelona to receive treatment and follow a specific training plan,” said a statement on the official club website.
Valverde will be without the majority of his first-team players due to their participation at the World Cup.
Barcelona will open their US tour against Tottenham Hotspur on July 29 in Los Angeles followed by a clash with Roma in Dallas two days after. Their tour will finish on August 4 against AC Milan.