Dortmund moved quickly to replace Ousmane Dembele, who has left Germany for Barcelona in a deal worth an initial 105m euros.
The Ukraine international scored 137 goals in 339 games for Kiev and has been on target 29 times in 69 games for his national side, and has joined for a reported 25million euros.
“Andriy is a player we have been pursuing for a long time and who is on the top level both at club level and in the service of the Ukrainian national team,” sports director Michael Zorc told reporters.
Yarmolenko added: “I am very grateful that Dynamo Kiev has fulfilled my dream of being able to switch to a big European club. I will work hard in every training to help BVB achieve its highest goals – that’s what I always do.”