Dortmund splash out on striker Aubameyang
No transfer fee was disclosed but media reports said it could be up to 13 million euros.
The 24-year-old Gabon international, who has won 33 caps, was the joint second highest scorer in Ligue 1 last season with 19 goals and helped Saint-Etienne chalk up their first top-five finish in six years.
"We are very pleased that in Pierre-Emerick Aubameyang we were able to sign a player we really wanted," Dortmund sports director Michael Zorc told the club's website.
"He is very versatile, has a lot of pace, is a threat in front of goal and will provide us with more options."
Aubameyang, who spent his early days at AC Milan without making a first-team appearance for the Italians, will join up with his new team mates next week.
Dortmund were beaten 2-1 by fellow Germans Bayern Munich in the Champions League final at Wembley in May.