Earnshaw, 23, has agreed terms on a three-year contract and joins the Premiership club after impressing with 83 goals in 176 league games for Cardiff. Earnshaw has also excelled at international level, scoring seven times in 13 appearances for Wales, including a hat-trick in the 4-0 thrashing of Scotland in February.
West Brom, who won promotion back to the top flight in May, are 14th in the Premiership after drawing three of their first four matches. They travel to Liverpool FC on 11 September.
©UEFA.com 1998-2017. All rights reserved.