Mario Gotze has completed his move back to Borussia Dortmund from Bayern Munich.
The Bundesliga rivals agreed a fee to allow the deal for Gotze to go through on Thursday.
The 24-year-old has signed a four-year contract with the Westphalians, for whom he played until moving to Munich three years ago, with the fee reported to be 26m euros (£21.75m).
“I’m personally really pleased that Mario has decided to return to Borussia Dortmund,” said Dortmund general manager Hans-Joachim Watzke.
“I had always hoped when he left here in 2013 that one day he would come back.”
Gotze’s departure to Bayern had been announced on the eve of Dortmund’s Champions League semi-final tie with Real Madrid, and it drew widespread criticism.
Germany’s 2014 World Cup final match-winner was given a hostile reception by Dortmund fans on his first return to the Westfalenstadion in a Bayern shirt.
— Borussia Dortmund (@BVB) July 21, 2016
But he hopes to be given a warm welcome back by those same followers having now admitted it was a mistake to move to Munich.
“When I moved to Bayern from Dortmund in 2013, it was a considered choice which I do not want to hide from,” Gotze said on Dortmund’s website.
“Three years later, and now I am 24 and can look back on that decision with different eyes.
“I can fully understand that many fans could not understand my decision, and it is a decision I would not take today.
“When I come back to my home, I would like to win over these people, particularly those who will not welcome me with open arms.
“It is my aim to play my best football again, for all of us – the club and the Dortmund fans.”
Gotze, who joined Dortmund’s youth ranks in 2001, won his first two Bundesliga titles with the club in 2011 and 2012 before adding three more at Bayern.
His contract with Bayern still had a year left to run, but it became clear he was not going to be given much playing time under new coach Carlo Ancelotti.
“The talks were fair and serious and I would like to thank Borussia Dortmund and Mario, as well as his father and agent,” said Bayern chairman Karl-Heinz Rummenigge on his club’s website.
“I think this transfer is a good solution for all parties. Bayern would like to thank Mario for three years in a Bayern shirt and wish him all the best for the future.”