Dortmund have splashed £26m out of the £73m windfall they received from the sale of Jadon Sancho to Manchester United on Malen.
The 22-year-old Netherlands international made 116 appearances in all competitions for PSV, scoring 55 goals after making his debut for the club in February 2018.
"Borussia Dortmund is a top European club that is always at the top of the Bundesliga and also has high demands on itself in the Champions League," Malen said.
"I can hardly wait to be on the pitch with my new teammates, to be able to measure myself against the best. And of course I'm looking forward to the fans and the stadium that all of Europe raves about."
BVB director Michael Zorc added: "Donyell is a player with great offensive potential, who exudes goal danger, brings his creativity to the table and has a high speed."
Malen spent much of his youth career with Ajax Amsterdam and Arsenal before joining PSV, where he won one Eredivisie title.
He has won 13 caps for the Netherlands national team, scoring two goals and was part of the side that reached the round of 16 stage at EURO 2020.
Dortmund begin their 2021/2022 Bundesliga campaign at home to Eintracht Frankfurt on August 14.