According to reports from Sky Sports, the two clubs have agreed a €40m (£36.5m) deal for the 22-year-old who joined Barcelona last season.
The Brazilian will travel to Russia on Friday to undergo his medical.
The report claims that Zenit sporting director Javier Ribalta flew to Barcelona on Tuesday to finalise the deal.
The news will come as a massive blow for Everton as the Toffees were heavily interested in signing him.
Earlier this week Mundo Deportivo reported that the Toffees had submitted a €40m (£36m) offer for the winger.
In fact, Everton tried to renew talks with him in recent hours, but they have failed in their attempt to sign him.
Malcom is a highly-rated young attacker and would have been a good signing for Everton, but it seems he will be plying trade in Russia next season.