The 24-year-old had looked certain to move to Stamford Bridge after Roman Abrahmovich reached an agreement with then Metalist Kharkiv owner and friend Oleksandr Yaroslavsky last month.
However, the deal collapsed when Metalist were bought out by Serhiy Kurchenko, who wanted a larger fee than the £8.5m Chelsea were offering.
Taison had a £12.4m release clause in his contract and after Shakhtar agreed to meet it, Kurchenko cut Chelsea out of negotiations.
Taison, who was reportedly keen on a move away from Ukraine, has signed a five-year deal at the Donbass Arena.
A statement on Shakhtar's club website said: "Donetsk side took advantage of the clause in Taison's contract, according to which he could leave his former club for $20 million.
"As a result, FC Shakhtar paid $20 million, and we got a player who really wanted to join our team. The Brazilian player's five-year contract started on 11 January."