West Brom captain Darren Fletcher will join Stoke on a free transfer next month.
The midfielder is out of contract at the end of June and has agreed a two-year deal at the bet365 Stadium, Stoke have confirmed.
Fletcher had been in contract talks with the Baggies, having triggered a one-year option in his favour earlier this season, but has opted not to extend his two-and-a-half-year stay.
Fletcher told the club's official site: "It's all happened incredibly quickly, but I am delighted to be here.
"This is a fantastic club with a top manager and a great group of players and I am really looking forward to this opportunity.
"I loved every moment of my time at West Bromwich Albion and I loved every moment of my time with Manchester United, but this is a new challenge for me now, and I like to think I respond well to new challenges."
Fletcher, 33, follows Saido Berahino to Stoke after the striker moved to the Potters from Albion for £12m earlier this season.
He becomes Mark Hughes' first summer signing as the manager refreshes his squad with record £18m signing Giannelli Imbula expected to leave.
Just two weeks ago Albion boss Tony Pulis was convinced Fletcher would stay at the Hawthorns and his exit is a huge blow.
Pulis held talks with the club's Chinese owners last week as they plan for next season and he must now replace his captain.
Fletcher made 97 appearances for the club and was handed the armband within a week of joining from Manchester United in 2015.
"Of course there is a disappointment in seeing Fletch move on and we wish him well," Pulis told West Brom's official site.
"I was happy that we made him a fair and competitive offer but, as is his right, he has chosen to accept another opportunity.
"He has been my captain since he came into the club and he has led the team superbly. But that is football and we move on. Nothing stays the same forever and the game moves on.
"We are determined to progress the team forward during this transfer window and this does not change that."