West Ham have signed Bristol City striker Nicky Maynard for an undisclosed fee, with the deal thought to be worth around £2m.
The 25-year-old has signed a two-and-a-half-year contract, with the option of a further 12 months.
Maynard moved to the Robins from Crewe for £2.25m in July 2008.
He scored 46 goals in 131 appearances but was put up for sale this month after negotiations to extend his deal at Ashton Gate fell through.
The forward's contract at City was due to expire in the summer.
Maynard has been the subject of intense transfer speculation since the summer, when Leicester offered a reported £6m for the striker, which was rejected by the Robins.
Premier League side Swansea were then linked with the player before Wigan looked set to make a move for the former Crewe trainee before the January transfer window closed.
But the Latics cooled those rumours last week, leaving Championship leaders West Ham to move in for the striker.
"I'm not going to spit my dummy out," he told the Bristol City website. "I've always had a good relationship with the fans and I do regret how things ended.
"I enjoyed my time at Bristol City but the opportunity to move to a massive club like West Ham, who are destined for the Premier League, was too good to turn down."