James McFadden has completed his move to Birmingham from Everton for an initial fee of £5million after agreeing personal terms and passing a medical.
The striker's proposed switch had seemed in doubt after the Scotland international left St Andrews on Thursday without reaching an agreement.
Another undisclosed club also came in for the star, who Scottish champions Celtic have previously tried to sign on loan.
But the deal has now gone through, with McFadden reunited with his former Scotland boss Alex McLeish, who is now at the helm at St Andrews.
Birmingham revealed McFadden has signed a three-and-a-half-year contract with an option for a further two years.
The initial £5million fee, which could rise to £6million, represents a significant profit for Everton on the player, who joined the Toffees from Motherwell for £1.2million in September 2003.
The Goodison Park club announced the completion of the deal on their website on Friday morning.
The deal has gone through in time for McFadden to be available for Saturday's visit of Chelsea.
He has netted five goals for the Toffees in all competitions this term.
McLeish said: "I am delighted to have signed James. He is not just a guy who can score great goals. He can also create things and make things happen and he has got a big heart.
"He is the type of player you know you are going to get everything from for the entire 90 minutes of a game.
"He has matured. He has had his initiation at Everton in the Premier League
and for me he is a definite Premier League player. He has shown that in a very
good Everton side this season.
"When he has come into the side, I am not so sure anyone has looked as good as him."